Disciplina: Banco de Dados Tema: modelagem
Er/relaciona e SQL
PROFESSOR: DANILO MONTEIRO
EMAIL: [email protected]
O que foi visto na aula passada ?
ER/ relacional
Monovalorado
Multivalorado
Entidade fraca
1:1
N:N
1:N
Cliente endereços matricula
telefone
data_nascimento
Emprestimo cod
valor
N
vencimento
1 faz
Roteiro
ER/relacional
Auto-relacionamento
Atributo composto
Atributo derivado
SQL
DDL
Create
Alter
Drop
Regra 7:
Para cada Auto-Relacionamento no diagrama E-R, deve-se usar as mesmas regras de mapeamento dos relacionamentos binários (1:1, 1:N, N:N).
◦ Vide regras 3, 4 e 5, respectivamente, já mostradas anteriormente.
Exemplo:
gerencia EMPREGADO
1 N
Gerencia É gerenciado
Atributo Composto:
Para cada Atributo Composto C no diagrama E-R que tenha como entidade proprietária E,
Incluir todos atributos pertencentes a C como atributos da tabela T, criada para representar E
Atributo Derivado:
Para cada Atributo Derivado D no diagrama E-R que tenha como entidade proprietária E,
Incluir D como atributo da tabela T, criada para representar E
Pessoa
Pessoa nome
primeiro último
do meio
cod
sexo
telefone
cod sexo fone primeiro do meio último
FUNCIONÁRIO
FUNCIONARIO código
tempo de casa nome
data contratação
cod nome tempo de casa Data contratação
Comandos SQL
DDL
SQL
Structured Query Language
Linguagem de Consulta Estruturada
Fundamentada no Modelo Relacional, inclui comando para:
Definição de dados
Consulta
Atualização
Usos de SQL
DDL – Linguagem de Definição de Dados
Criar (create table)
Destruir (drop table)
Modificar (alter table)
DML – Linguagem de Manipulação de Dados
Consultar (select)
Inserir (insert)
Remover (delete)
Atualizar (update)
DCL – Linguagem de Controle de Dados
Conceder (grant)
Revogar (revoke)
Comandos SQL DDL
CREATE
SQL - Criação de banco de dados
Comando Create database (sintaxe)
CREATE DATABASE <nome> ; CREATE DATABASE escola;
CREATE DATABASE imobiliária;
CREATE DATABASE locadora;
SQL - Criação de banco de dados
Comando DROP database (sintaxe)
DROP DATABASE <nome> ; DROP DATABASE escola;
DROP DATABASE imobiliária;
DROP DATABASE locadora;
SQL - Criação de Tabelas
Comando Create table (sintaxe)
CREATE TABLE <tabela>
(<descrição das colunas>);
(<descrição das chaves>);
SQL - Criação de Tabelas
Comando Create table
Ao se criar uma estrutura de uma tabela necessário que o usuário forneça, para cada coluna, as seguintes informações:
TIPO DE DADO
Varia de acordo com o SGBD
Exemplo:
Oracle: char, varchar2, number, date, etc.
Mysql: char, varchar, int, date, etc.
Postgresql: varchar, char, bigint, int, real, date, etc.
TAMANHO (*nem sempre)
RESTRIÇÕES
EX: primary key, foreign key, unique, not null...
SQL - Criação de Tabelas
Tipos de Dado no PostgreSQL
Para campo do tipo TEXTO
Char (tamanho/número fixo de dígitos fixo) e Varchar (tamanho/número de dígitos variável)
Para campo do tipo DATA
Date
Para campo do tipo NUMÉRICO
INT (até 10 dígitos) e BIGINT (entre 11 e 18 dígitos) para inteiros
REAL para decimais
SQL - Criação de Tabelas
Comando Create table (mais exemplos)
CREATE TABLE fiscais (
cod int,
nome varchar(70) NOT NULL, sexo char(1),
cidade varchar(70), estado char(2),
telefone bigint, salario real,
PRIMARY KEY (cod) );
Tipo de dado ‘int’
Tamanho de dado ’2’
_ _
(dois dígitos alocados no máximo a ser representado)
Restrições de dados
‘PRIMARY KEY‘
SQL - Criação de Tabelas
Comando Create table (mais exemplos)
CREATE TABLE telefones_fiscal (
cod_fiscal int, telefone bigint,
PRIMARY KEY (cod_fiscal, telefone),
FOREIGN KEY (cod_fiscal) REFERENCES FISCAL (cod) );
Espeficando
UMA PK composta, e UMA FK
SQL - Criação de Tabelas
Comando Create table (mais exemplos)
CREATE TABLE fiscal_gerencia_fiscal (
cod_fiscal_gerente int, cod_fiscal_gerenciado int, data date,
PRIMARY KEY (cod_fiscal_gerente, cod_fiscal_gerenciado),
FOREIGN KEY (cod_fiscal_gerente) REFERENCES FISCAL (cod), FOREIGN KEY (cod_fiscal_gerenciado) REFERENCES FISCAL (cod) );
Espeficando
UMA PK composta, e DUAS FKs
Exercício
Faça o comando SQL para criar as seguintes tabelas:
aluno (cod, nome, data_de_nascimento, idade, email, sexo)
disciplina (cod, nome, carga_horaria)
fones_aluno (codAluno, fone)
aluno_cursa_disciplina (codAluno, codDisciplina, media)
Cliente endereços matricula
telefone
data_nascimento
Emprestimo cod
valor
N
vencimento
1 faz
Comandos SQL DDL
DROP
SQL – Exclusão de Tabelas
Comando Drop table (sintaxe)
DROP TABLE <tabela>;
SQL – Exclusão de Tabelas
Comando Drop table (exemplos)
DROP TABLE telefones_fiscal;
DROP TABLE fiscal;