Disciplina: Banco de Dados I – Prof. AP Modelagem de dados – MER Entidade / Tabela O modelo de entidade e relacionamento é o mais utilizado atualmente, devido a sua simplicidade e eficiência. Baseia-se na percepção de mundo real, que consiste em uma coleção de objetos básicos, chamados entidades e relacionamentos entre esses objetos. Você poderá usar ou não um software para modelagem de dados. A modelagem de dados consiste em uma série de análises conceituais e lógicas para encontrar a melhor disposição possível de armazenamento e manutenção das informações no banco de dados. Várias notações Existem muitas notações para diagrama de entidades e relacionamentos. A notação original foi proposta por Peter Chen e é composta de entidades (retângulos), relacionamentos (losangos), atributos (círculos) e linhas de conexão (linhas) que indicam a cardinalidade de uma entidade em um relacionamento. Chen ainda propõe símbolos para entidades fracas e entidades associativas. As notações modernas abandonaram o uso de símbolos especiais para atributos, incluindo a lista de atributo, de alguma forma, no símbolo da entidade. Consideramos as notações como as mais interessantes na atualidade: IDEF1X, utilizada pela ferramenta CA-ERwin, bastante difundida no mercado; Engenharia de Informação, bastante difundida e também presente como notação no CA-ERwin; Notação de Setzer, difundida no Brasil por seu autor; Notação de Ceri, Bertini e Navathe [B32], pouco difundida, mas com aspectos teóricos interessantes. Nota: Além do CA-ERwin, podemos encontrar a notação de Engenharia da Informação nos programas de modelagem como o: TOAD Data Modeler, Visual Paradigm, DB Designer, Oracle Data Modeler e outros. Exemplos de Notações Veja nas figuras abaixo, três tipos de notações utilizadas na modelagem de dados. 1 Disciplina: Banco de Dados I – Prof. AP Notação Peter Chan Figura 1 - Diagrama Peter Chen – Ferramenta BR Modelo 2 Disciplina: Banco de Dados I – Prof. AP Notação Engenharia da Informação. Figura 2 - Diagrama MER (Pé de galinha) – Engenharia da Informação – Ferramenta DB Designer Notação IDEF1X Figura 3 - Diagrama MER – IDEFX1 - Ferramenta Power Designer 3 Disciplina: Banco de Dados I – Prof. AP Tabelas Todos os dados de um banco de dados relacional (BDR) são armazenados em tabelas. Uma tabela é uma simples estrutura de linhas e colunas. Em uma tabela, cada linha contém um mesmo conjunto de colunas. Em um banco de dados podem existir uma ou centenas de tabelas, sendo que o limite pode ser imposto tanto pela ferramenta de software utilizada, quanto pelos recursos de hardware disponíveis no equipamento. As tabelas associam-se entre si através de regras de relacionamentos, estas regras consistem em associar um ou vários atributo de uma tabela com um ou vários atributos de outra tabela. Exemplo: A tabela funcionário relaciona-se com a tabela cargo. Através deste relacionamento esta última tabela fornece a lista de cargos para a tabela funcionário. Modelo teórico usado para representar conceitualmente um BD, Idealizado por Codd (1970). Baseado numa estrutura de dados simples chamada relação. É o modelo mais amplamente usado, principalmente em aplicações convencionais de BD. Registros (ou tuplas) Cada linha formada por uma lista ordenada de colunas representa um registro, ou tupla. Os registros não precisam conter informações em todas as colunas, podendo assumir valores nulos quando assim se fizer necessário. Resumidamente, um registro é uma instância de uma tabela, ou entidade. Exemplo: O empregado Pedro é uma instância (registro) da tabela funcionário, e a função Analista Comercial é a instância (registro) da tabela cargo. Uma associação entre estas duas tabelas criaria a seguinte instância de relacionamento: Pedro é Analista Comercial, onde o verbo ser representa uma ligação entre os registros distintos. Colunas As colunas de uma tabela são também chamadas de tribunas. Ex.: O campo Nome, ou endereço de uma tabela de um BD relacional. Chave As tabelas relacionam-se umas as outras através de chaves. Uma chave é um conjunto de um ou mais atributos que determinam a unicidade de cada registro. Por exemplo, se um banco de dados tem como chaves Código do Produto e ID Sistema, sempre que acontecer uma inserção de dados o sistema de gerenciamento de banco de dados irá fazer uma consulta para identificar se o registro já não se encontra gravado na tabela. Neste caso, um novo registro não será criado, resultando esta operação apenas da alteração do registro existente. 4 Disciplina: Banco de Dados I – Prof. AP A unicidade dos registros, determinada por sua chave, também é fundamental para a criação dos índices. Temos três tipos de chaves: Chave Primária: (PK - Primary Key) é a chave que identifica cada registro dando-lhe unicidade (sem repetições). A chave primária nunca se repetirá. Chave Estrangeira: (FK - Foreign Key) é a chave formada através de um relacionamento com a chave primária de outra tabela. Define um relacionamento Não Identificado entre as tabelas. Chave Composta: (PK + FK ou FK + PK) é combinação de dois ou mais atributos como chaves para criação de um identificador único, comum em relacionamentos Identificados. Entidade Atributos Tabela Coluna Registro IdEmpresa 100 101 Tabela Empresa razaoSocial Senac SP Comercial Santos Cnpj 12.456.456/0001-50 15.456.789/0001-66 Tipos de Entidade - Primária (Forte) – Existe por si mesma, não precisa de outra entidade para existir – Exemplo: Entidade Produto; - Dependente (Fraca) – Depende de outra entidade para existir – Exemplo: Entidade Bairro; 5 Disciplina: Banco de Dados I – Prof. AP - Associativa (Dependente de 2 ou + entidades) – Precisa de 2 ou mais entidades para ter utilidade – Exemplo: Entidade Compra. Tipos de Atributo - Simples: São chamados também por atributos atômicos. Eles não são divisíveis. - Compostos: Os atributos compostos podem ser divididos em partes menores, ou subpartes, os quais representariam atributos básicos mais simples com significados independentes. Por exemplo, um atributo endereço pode ser subdividido em: rua, cidade, estado e cep. Poderíamos também dividir o atributo rua em: número, nome-rua e número-apartamento. Atributos deste tipo formam uma hierarquia. - Monovalorados: São atributos que possuem apenas um valor para uma entidade em particular. Por exemplo, o CPF é um atributo monovalorado para uma entidade pessoa. - Multivalorados: São atributos que possuem um ou mais valores para o mesmo. Por exemplo, o atributo idioma de uma entidade aluno pode conter os valores inglês e francês. Para um outro aluno poderia conter apenas um valor - espanhol. Para um terceiro aluno, poderíamos ter 3 valores para este atributo. - Derivados/Calculados: Que podem ser obtidos através de um cálculo. Por exemplo, idade (que pode ser obtida através de um cálculo com a data de nascimento de uma pessoa) ou total do pedido (que a soma dos itens adquiridos) Nota: Campos calculados ou derivados não costumam ser armazenados no banco de dados. O importante em guardar os dados Persistentes e não os dados Transientes como são conhecidos. Desafio: Quais são os tipos de atributos mais desejados em um modelo lógico? Opcionalidade/Obrigatoriedade Um atributo pode ser obrigatório ou opcional, adotando-se uma palavra reservada para identificar está situação. Exemplo: Nome Cliente – Not Null (Obrigatório) E-mail Cliente – Null (Opcional) Relacionamentos do MER Identificado – A chave primária vai da entidade pai para entidade filha compondo a chave primária (PK + FK ou FK + PK) da entidade filha. 6 Disciplina: Banco de Dados I – Prof. AP Não Identificado – A chave primária vai da entidade pai para entidade filha apenas como um atributo de chave estrangeira (FK) Auto-Relacionamento (Recursivo) – Um atributo da entidade se relaciona com outro atributo de chave primária da mesma entidade, criando um auto-relacionamento para resolução de problemas hierárquicos. Generalização / Especialização (Subtipo) – Uma entidade filha herda as características (atributos) de uma entidade pai. Exemplo: Entidade Pessoa -> Entidade Pessoa Física e Entidade Pessoa Jurídica. Observação: O relacionamento muitos para muitos (N:N) deve ser resolvido, criando-se uma nova entidade centralizadora, que receberá as chaves primárias de ambas as tabelas envolvidas. No Erwin no menu action > transformation > Resolve Many to Many Relationship. Cardinalidade 1 : 1 – Um para Um - Exemplo: Um Pedido gera uma Nota Fiscal ou uma Nota Fiscal é gerada por um Pedido 1 : N – Um para Muitos - Exemplo: Um Cliente pode ter um ou muitos (N) Pedidos N : N – Muitos para Muitos – Exemplo: Um Pedido contém muitos (N) Produtos, um Produto aparece em muitos (N) Pedidos. Obs.: O relacionamento N : N deverá ser resolvido para implementação física do Banco de Dados, adotando-se as FNs (Formas Normais). Tipos de Modelo MER Modelo conceitual A modelagem conceitual baseia-se no mais alto nível e deve ser usada para envolver o cliente. Os exemplos de modelagem de dados vistos pelo modelo conceitual são mais fáceis de compreender, já que não há limitações ou aplicação de tecnologia específica. O diagrama de dados que deve ser construído aqui, chama-se, Diagrama de Entidade e Relacionamento, onde deverá ser identificado todas as entidades e os relacionamentos entre elas. Este diagrama é a chave para a compreensão do modelo conceitual de dados. 7 Disciplina: Banco de Dados I – Prof. AP Modelo lógico (DER) O modelo lógico já leva em conta algumas limitações e implementa recursos como adequação de padrão e nomenclatura, define as chaves primárias e estrangeiras. Deve ser criado levando em conta os exemplos de modelagem de dados criados no modelo conceitual aplicando-se as formas normais (FNs). Modelo físico No modelo físico fazemos a modelagem física do modelo de banco de dados. Leva-se em conta as limitações impostas pelo SGBDR (Sistema Gerenciado de Banco de Dados Relacional) escolhido e deve ser criado sempre com base nos exemplos de modelagem de dados produzidos no item anterior, modelo lógico. Leva-se em consideração o tipo de dados 8 Disciplina: Banco de Dados I – Prof. AP e seu comprimento (exemplo: VARCHAR (100) ) e o nome da coluna física da tabela a ser criada, que pode ser uma abreviação do nome do atributo do modelo lógico. Padrões Adotados nos Exercícios. Entidade: Nome no singular em letra maiúsculas, sem preposição e sem acentuação ou ç. Exemplos: CLIENTE, PEDIDO COMPRA, ENDERECO PESSOA. Atributos: Primeira letra maiúscula de cada palavra, sem acentuação, ç ou preposição e colocando o tipo de dado lógico do atributo. Exemplos: Nome Cliente, Data Nascimento Cliente, Valor Produto, Nome Produto, Data Venda. Relacionamentos: Colocar as palavras chaves nos relacionamentos para ajudar na compreensão do modelo. Exemplo: aloca/alocado; contém/contido; compõe/composto. Opcionalidade: Definir a opcionalidade (Null ou Not Null). Notação Utilizada: IE – Information Engineering (Engenharia da Informação). Notação Cardinalidade: 9 Disciplina: Banco de Dados I – Prof. AP Formas Normais: Atividade: Fazer uma pesquisa sobre as formas normais 1FN, 2FN, 3FN, 4 FN e 5FN. Colocar exemplos explicando o processo de normalização. Pode ser feito em equipe de até 4 pessoas. Data limite 11/09/2014, apresentar em sala de aula para os demais colegas, 10 minutos cada equipe – levar a apresentação em formato .ppt, .pptx ou .pdf. Equipe 1 – 1FN <Colocar os nomes dos integrantes> Equipe 2 – 2FN <Colocar os nomes dos integrantes> Equipe 3 – 3FN <Colocar os nomes dos integrantes> Equipe 4 – 4FN e 5FN <Colocar os nomes dos integrantes> 10