2008.1 Modelo Relacional Renata Viegas 2008.1 Introdução - MR • Um banco de dados relacional é composto por um conjunto de tabelas ou relações, cada uma das quais com um nome único. – A terminologia tabela é mais comum nos produtos comerciais e na prática. – Já a terminologia relação foi utilizada na literatura original sobre a abordagem relacional e é mais comum na área acadêmica. 2008.1 Introdução - MR Os dados são representados em forma de tabelas (relações), através de linhas (tuplas) e colunas (atributos), com os possíveis valores (domínio) definido. 2008.1 Introdução • Uma tabela é um conjunto não-ordenado de linhas (tuplas, na terminologia acadêmica) – Cada linha é composta por uma série de campos, ou atributos. • Cada linha de uma tabela representa um relacionamento entre um conjunto de valores. 2008.1 Introdução • Cada campo é identificado por nome do campo (ou atributo) • O conjunto de campos das linhas de uma tabela que possuem o mesmo nome formam uma coluna. 2008.1 nome do campo nome do atributo Código 001 002 003 coluna, atributo, campo Nome José Antonio Ana linha, tupla, registro Fone 222.1234 224.1212 235.4859 valor do campo valor do atributo tabela relação Estado PE PB RN 2008.1 Conceitos do Modelo Relacional... 2008.1 Chave Primária • Atributo ou conjunto de atributos que identifica cada linha em uma tabela de forma única. – Cada tabela deverá possuir uma única chave primária. – A chave primária não admite repetição de valores. – É utilizada como referência para outras tabelas. 2008.1 Código Código 001 001 Nome José Fone 222.1234 Estado PE 002 002 003 003 Antonio Ana 224.1212 235.4859 PB RN Pedido Pedido 001 001 001 001 002 002 002 002 002 002 003 003 Produto Produto A53 A53 C47 C47 N74 N74 A53 A53 G05 G05 N74 N74 Preço 12,00 15,00 27,00 15,00 51,00 29,00 Quant 27 5 12 7 2 8 Tabela CLIENTE Tabela ITENS DE PEDIDO 2008.1 Chave Estrangeira • Chave primária de uma tabela presente em uma outra para estabelecer uma conexão entre as duas. • A chave estrangeira é o mecanismo pelo qual implementam-se os relacionamentos em um banco de dados relacional. • Impõe restrições de integridade referencial que devem ser garantidas na alteração do banco de dados 2008.1 Funcionário Código Nome Fone Setor Função Função 001 001 002 002 003 003 004 004 José 222.1234 S1 F1 F1 Antonio 224.1212 Ana 235.4859 S2 S1 S1 F2 F2 F2 F2 Bruna 247.9806 S3 S3 F3 F3 Código Descrição Código Descrição S1 Compras F1 Gerente S2 Vendas Técnico S3 Pessoal F2 F3 F3 Setor Assessor Função 2008.1 Modelo Relacional A R1 B R2 R3 C D REGRAS Modelo E-R Define os dados que vão compor o banco de dados. Regras Definem a passagem do modelo E-R para o Relacional Modelo Relacional Representação dos dados em forma de tabelas. 2008.1 REGRAS !! 2008.1 Modelo Relacional • Regras Gerais – Entidade Tabela – Atributo Coluna – Relacionamento Tabela ou Chave Estrangeira – Generalização/Especialização Tabelas 2008.1 Modelo Relacional • Entidade Tabela – Toda entidade se transforma em uma tabela, e seus atributos serão as colunas 2008.1 Modelo Relacional PRODUTO (código, ref, desc, quant, preço) código código ref desc quant preço 2008.1 Modelo Relacional • Atributo Simples ou Chave Coluna – Todo atributo simples deve ser incluído como uma coluna da tabela correspondente à entidade à qual ele está ligado • Atributo Composto Tabela + Chave da Entidade – Todo atributo composto se transforma numa tabela, e seus sub-atributos serão as colunas – Uma das colunas da tabela deve ser a chave da entidade à qual o atributo está ligado (Chave Estrangeira) 2008.1 Modelo Relacional • Atributo Multivalorado Tabela + Chave da Entidade – Todo atributo multivalorado se transforma numa tabela, e uma das colunas deve ser a chave da entidade à qual o atributo está ligado (Chave Estrangeira) 2008.1 Modelo Relacional CLIENTE (CPF, nome, dataNasc) ENDEREÇO(CPF, rua, complemento) 2008.1 Modelo Relacional • Relacionamento N : N Tabela + Chaves das entidades – Todo relacionamento N:N se transforma numa tabela, onde seus atributos (se houver) serão as colunas – As chaves das entidades ligadas ao relacionamento também devem ser acrescentadas como colunas (Chaves Estrangeiras) 2008.1 (1,N) ALUNO CURSA (1,N) DISCIPLINA ALUNO (código, nome) DISCIPLINA (código, nome) Aluno_Discp (aluno, disc) aluno referencia ALUNO disc referencia DISCIPLINA 2008.1 Modelo Relacional • Relacionamento N : 1 sem atributos Chave da Entidade 1 na Tabela da Entidade N – Os relacionamentos N:1 que não têm atributos não se transformam em tabelas – A chave da entidade que está na extremidade 1 do relacionamento deve ser incluída como coluna na tabela da entidade que está na extremidade N (Chave Estrangeira) 2008.1 (1,1) (1,N) EMPREGADO LOTADO DEPARTAMENTO EMPREGADO (cod_emp, nome, cod_dept) DEPARTAMENTO (cod_dept, nome) 2008.1 Modelo Relacional • Relacionamento N : 1 com atributos Tabela com chaves das duas entidades – Todo relacionamento N:1 com atributos se transforma numa tabela, onde seus atributos serão as colunas – As chaves das entidades ligadas ao relacionamento também devem ser acrescentadas como colunas (Chaves Estrangeiras) 2008.1 horas EMPREGADO (1,N) (1,1) LOTADO DEPARTAMENTO EMPREGADO (cod_emp, nome) DEPARTAMENTO (cod_dept, nome) LOTAÇÃO (cod_emp, cod_dept, horas) 2008.1 Modelo Relacional • Generalização / Especialização com muitos atributos em comum Tabela para Entidade Superior + Tabelas para Entidades Inferiores com Chave da Entidade Superior – É criada uma tabela para a entidade mais genérica, onde cada atributo vira uma coluna – Para cada entidade especializada, é criada uma tabela com uma coluna para cada atributo e uma coluna com a chave da entidade mais genérica (Chave Estrangeira) 2008.1 SERVIDOR FUNCIONARIO PROFESSOR SERVIDOR (rg, nome, endereço, telefone, sexo, tipo) FUNCIONARIO (rg, função) PROFESSOR (rg, titulação, categoria) 2008.1 Modelo Relacional • Generalização / Especialização com poucos atributos em comum Tabelas para Entidades Inferiores com Atributos da Entidade Superior – Para cada entidade especializada, é criada uma tabela com uma coluna para cada atributo da entidade e uma coluna para cada atributo da entidade superior – Não há ligação entre as tabelas 2008.1 rg SERVIDOR FUNCIONARIO nome PROFESSOR FUNCIONARIO (rg, nome, função) PROFESSOR (rg, nome, titulação, categoria) 2008.1 Modelo Relacional • Agregação Tabelas para cada Entidade + Tabelas para cada Relacionamento – A agregação deve ser vista como dois relacionamentos separados – A representação de cada relacionamento dependerá da cardinalidade e da presença/ausência de atributos, conforme visto nas regras para relacionamentos 2008.1 (1,1) OFICINA TEM (1,N) FUNCIONÁRIO (0,N) OFERECE (0,N) CURSO OFICINA (cod_of, nome) CURSO (cod_curso, nome, cod_of) FUNCIONÁRIO (cpf, nome, cod_of) OFER_CUR (cod_curso, cpf)