Banco de Dados - Senado Introdução Ilka Kawashita Material preparado :Prof. Marcio Vitorino
Ementa do Curso n Banco de Dados n Sistemas de Apoio à Decisão (SAD) n ORACLE
BANCO DE DADOS (BD) n Modelo Entidade e Relacionamento. n Normalização de dados. n Conceitos de transação, integridade, concorrência e bloqueio de transações. n Projeto lógico para ambiente relacional. n Banco de dados distribuídos.
SISTEMAS DE APOIO À DECISÃO (SAD) n Princípios e técnicas de modelagem dimensional (Star Schema, Snow flake) n Arquitetura OLAP n ETL n Data Mining n Data Warehouse n Business Intelligence: Conceitos Princípios e Processos.
ORACLE n Procedures; n Packages; n Functions; n Triggers; n Views; n Materialized views; n Jobs e Sequences; n Linguagens SQL e PL/SQL
Dados não Compartilhados Departamento de Compras Departamento de Vendas Departamento de Produção Arquivos Compras Arquivos Vendas Arquivos Produção n Problema: redundância de dados: q controlada; q não controlada.
Dados não Compartilhados n Evitar redundância não controlada: q compartilhamento de dados; q cada informação é armazenada uma única vez; q usar o conceito de banco de dados. Departamento de Compras Departamento de Vendas Departamento de Produção Banco de Dados
Banco de Dados n Banco de Dados: q Conjunto de dados integrados que tem por objetivo atender a uma comunidade de usuários. n Sistema de Gerência de Banco de Dados (SGBD): q Software que incorpora as funçoes de definição, recuperação e alteração de dados em um banco de dados.
Evolução Programa com dados Programa armazenados com dados Programa armazenados com dados armazenados dados Programa com Programa com gerência Programa de arquivos com gerência de arquivos gerência de arquivos dados SGBD Programa de Programa de aplicação Programa de BD de aplicação de BD aplicação de BD
n n n n Banco de Dados Modelos de Dados: descrição formal da estrutura de um banco de dados. Modelo Conceitual: modelo de dados abstrato, que descreve a estrutura de um banco de dados de forma independente de um SGBD particular. Modelo lógico: modelo de dados que representa a estrutura de dados de um banco de dados conforme vista pelo usuário do SGBD. Modelo Físico: é uma representação gráfica do detalhamento físico das estruturas dos dados que o banco de dados irá armazenar. Este modelo é dependente do SGBD em que será implementado.
Modelo de Dados n Modelo Hierárquico n Modelo em Rede n Modelo Relacional n Modelo Relacional-Objeto n Modelo Orientado a Objeto
Evolução dos Bancos de Dados Sistemas de arquivos BD em rede BD hierárquico BD relacional Linguagens OO Modelos semânticos Objetos complexos Hipermídia Inteligência artificial BD OO Information retrieval BD inteligente (Khoshafian 1995)
Modelo Conceitual (E-R) editora autor endereço telefone N N LIVROS COMPRA CLIENTES código nome número data cadastro nome
Modelo Lógico
Modelo Físico LIVROS COMPRA código: char(3) nome: char(35) autor: char(70) editora: text código número: char(3) código: char(3) cadastro: char(3) data: datetime cadastro CLIENTES cadastro: char(3) nome: char(35) Telefone: char(14) endereço: text
Níveis de Abstração Dependência nível de Modelagem X SGBD Modelo Modelo do SGBD SGBD Específico Conceitual Não Não Lógico Sim Não/Sim Físico Sim Sim
Banco de Dados - Senado Modelo Entidade Relacionamento (MER) Ilka Kawashita Material preparado :Prof. Marcio Vitorino
Abordagem Entidade Relacionamento n Técnica para construir modelos conceituais de base de dados. n Técnica de modelagem de dados mais difundida e utilizada. n Criada em 1976 por Peter Chen. n O Modelo E-R é representado graficamente pelo Diagrama Entidade Relacionamento (DER).
Conceitos Centrais n n n n n Entidade: conjunto de objetos da realidade modelada, sobre os quais deseja-se manter informações na base de dados. Relacionamento: conjunto de associações entre entidades, sobre as quais deseja-se manter informações na base de dados. Atributo: dados ou informação que é associado a cada ocorrência de uma entidade ou de um relacionamento. Generalização/Especialização: permite atribuir propriedades particulares a um subconjunto das ocorrências (especializadas) de uma entidade genérica. Entidade Associativa: permite representar relacionamentos N:M
Entidade n n n Representada através de um retângulo. Retângulo contém o nome da entidade. Para referir um objeto particular fala-se em instância ou ocorrência da entidade. Pessoa Departamento
Relacionamento n Este modelo nos diz que o BD mantém informações sobre: q q q um conjunto de empregados; um conjunto de departamentos; e um conjunto de associações que ligam um departamento a um empregado. Pessoa Lotação Departamento
Relacionamento Pessoa Lotação Departamento ENTIDADE EMPREGADO e1 e2 e3 e4 e6 e7 e5 e8 RELACIONAMENTO LOTAÇÃO e1,d1 e2,d1 e4,d2 e5,d3 ENTIDADE DEPARTAMENTO d1 d2 d3
Auto-relacionamento n n Normalmente um relacionamento associa entidades diferentes. Há um caso especial no qual há um relacionamento entre a mesma entidade. Nesta situação surge o conceito de PAPEL que identificará o relacionamento. EMPREGADO gerente subordinado GERENCIA
Papel em Relacionamentos n Função que uma ocorrência de uma entidade cumpre em uma ocorrência de um relacionamento. n Relacionamento de gerência: q Uma ocorrência de pessoa exerce o papel de subordinado. q Uma ocorrência de pessoa exerce o papel de gerente. n Relacionamento entre entidades diferentes não é necessário indicar os papéis das entidades.
Cardinalidade de Relacionamentos CARDINALIDADE MÁXIMA A cardinalidade máxima de uma entidade em relacionamento é o número máximo de ocorrências de entidade associadas à uma ocorrência da entidade em questão através do relacionamento. EMPREGADO LOTAÇÃO n 1 DEPARTAMENTO
Cardinalidade de Relacionamentos Para fins práticos, apenas duas cardinalidades máximas são de nosso interesse, as: - de valor 1; e a - de valor n. EMPREGADO LOTAÇÃO n 1 DEPARTAMENTO
Relacionamentos Binários A cardinalidade máxima é usada para classificar os relacionamentos binários, aqueles nos quais os relacionamentos se dão entre duas entidades. TIPOS DE RELACIONAMENTOS BINÁRIOS - 1:1 ( um-para-um ); - 1:N ( um-para-muitos ); e - N:M ( muitos-para-muitos).
Relacionamentos Binários 1:1 EMPREGADO ALOCAÇÃO 1 1 BANCADA
Relacionamentos Binários 1:N EMPREGADO TEM 1 N DEPENDENTE EMPREGADO chefia 1 N chefiado CHEFE
Relacionamentos Binários N:M MÉDICO N TEM M PACIENTE PRODUTO composto N COMPOSIÇÃO componente M
Relacionamentos Ternários A abordagem ER permite que sejam definidos relacionamentos de graus maiores que dois, muito embora não sejam comuns. ANÁLISE A cardinalidade refere-se a pares de entidades e relacionadas com a terceira.
Relacionamentos Ternários CIDADE DISTRIBUIDOR N 1 TEM M PRODUTO
Relacionamentos Ternários CIDADE DISTRIBUIDOR N 1 TEM M PRODUTO
Relacionamentos Ternários TABELA PARA ANÁLISE DE RELACIONAMENTOS TERNÁRIOS DISTRIBUIDOR PRODUTO CIDADE TRAMONTINA TRAMONTINA EBERLE EBERLE INOX INOX TRAMONTINA TRAMONTINA EBERLE EBERLE FACA COLHER FACA COLHER FACA COLHER FACA COLHER FACA COLHER RIO DE JANEIRO RIO DE JANEIRO BRASÍLIA BRASÍLIA SÃO PAULO SÃO PAULO BELO HORIZONTE BELO HORIZONTE PORTO ALEGRE PORTO ALEGRE
Relacionamentos Ternários CIDADE DISTRIBUIDOR n 1 TEM n PRODUTO
Relacionamentos Ternários CIDADE DISTRIBUIDOR n 1 TEM n PRODUTO
Cardinalidade de Relacionamentos CARDINALIDADE MÍNIMA A cardinalidade mínima de uma entidade em relacionamento é o número mínimo de ocorrências de entidade associadas à uma ocorrência da entidade em questão através do relacionamento. EMPREGADO ALOCAÇÃO (0,1) (1,1) BANCADA
Cardinalidade de Relacionamentos Para fins práticos, apenas duas cardinalidades mínimas são de nosso interesse, a de valor 0 e a de valor 1. A cardinalidade mínima 1 recebe a denominação de associação obrigatória, uma vez que indica que o relacionamento DEVE obrigatoriamente associar uma ocorrência de entidade à cada ocorrência da outra entidade em questão. A cardinalidade mínima 0 recebe a denominação de associação opcional, uma vez que indica que o relaciona-mento PODE ou não associar uma ocorrência de entidade à cada ocorrência da outra entidade em questão. EMPREGADO ALOCAÇÃO (0,1) (1,1) BANCADA
Cardinalidade de Relacionamentos DIAGRAMA DE OCORRÊNCIAS ENTIDADE EMPREGADO e1 e2 e3 e4 RELACIONAMENTO ALOCAÇÃO e1,b1 e2,b2 e3,b6 e4,b4 ENTIDADE BANCADA b1 b2 b3 b4 b5 b6 n Os empregados e1, e2, e3 e e4 estão ligados às bancadas b1, b2, b4 e b6, respectivamente; n Cada empregado está obrigatoriamente ligado à uma bancada; n Uma bancada pode existir sem que esteja ligado a ela nenhum empregado.
VERBO CARDINALIDADE MÍNIMA MÁXIMA GRAU RELACIONAMENTO TIPO pode 0 1 N um e inclusive nenhum muitos e inclusive nenhum opcional deve 1 1 N um e somente um muitos ou um obrigatório Leitura de Relacionamentos FUNCIONÁRIO ( 1,1 ) RESPONSÁVEL ( 0,N ) DEPENDENTE Entidade Sujeito Verbo de Opcionalidade Relacionamento Grau de Relacionamento Entidade Objeto Cada funcionário pode ser responsável por muitos e inclusive nenhum dependente
Exemplo Exemplo n n Deseja-se manter no BD informações sobre as entidades: q q q q Alunos; Cursos; Disciplinas; e Departamentos. As cardinalidades descrevem que: q q q q cada Disciplina deve possuir um e somente um Departamento responsável, e cada Departamento pode ser responsável por muitas e inclusive nenhuma Disciplina; cada Disciplina pode possuir muitas e inclusive nenhuma Disciplina pré-requisito e cada Disciplina pode ser pré-requisito de muitas e inclusive de nenhuma Disciplina; cada Disciplina pode aparecer em muitos e inclusive nenhum Curso, e cada Curso pode possuir muitas e inclusive nenhuma Disciplina em seu currículo; cada Aluno deve estar inscrito em um e somente um Curso e cada Curso pode ter nele inscrito muitos e inclusive nenhum Aluno.
Exemplo PRÉ-REQUISITO liberadora (0,N) liberada (0,N) DEPARTMENTO RESPONSÁVEL (1,1) (0,N) DISCIPLINA (0,N) DISC/CURSO (0,N) ALUNO (0,N) INSCRIÇÃO (1,1) CURSO
Atributo Dado que é associado a cada ocorrência de uma entidade ou de um relacionamento. REPRESENTAÇÃO EMPREGADO ATUAÇÃO nome ENTIDADE código tipo função data RELACIONAMENTO
Cardinalidade de Atributos Um atributo pode possuir uma cardinalidade, de maneira análoga à uma entidade num relacionamento. Esta cardinalidade define quantos valores deste atributo podem estar associados com uma ocorrência da entidade ou relacionamento ao qual ele pertence. CARDINALIDADES DE INTERESSE - Cardinalidade (1,1): obrigatória (não precisa representar a cardinalidade no diagrama); - Cardinalidade (0,1): opcional; - Cardinalidade (0,N): opcional e multivalorada; EMPREGADO nome código telefone(0,n)
Identificando Entidades Um identificador é um conjunto de um ou mais atributos, ou relacionamentos, cujos valores servem para distinguir uma ocorrência da entidade das demais ocorrências da mesma entidade. IDENTIFICADOR SIMPLES Um único atributo é suficiente para distinguir uma ocorrência da entidade das demais ocorrências da mesma entidade. código EMPREGADO nome telefone Somente o atributo código identifica exclusivamente um empregado.
Identificando Entidades IDENTIFICADOR COMPOSTO Dois ou mais atributos podem ser necessários para distinguir uma ocorrência da entidade das demais ocorrências da mesma entidade, neste caso o identificador é dito composto. PRATELEIRA Os atributos número do corredor e número da prateleira identificam exclusivamente uma dada prateleira. capacidade número da prateleira número do corredor
Relacionamento Identificador Há casos em que o identificador de uma entidade é composto não somente por seu ou seus atributos, mas também através de relacionamentos em que ela participa. código nome seqüência nome EMPREGADO POSSUI (1,1) (0,n) DEPENDENTE A entidade Dependentes é identificada por seu atributo sequência e pelo relacionamento com a entidade Empregado. À semelhança do atributo identificador - que tem a sua bolinha cheia - o relacionamento identificador recebe uma linha espessa no diagrama.
Relacionamento Identificador GRUPO código GR/EMP EMPRESA número da empresa EMP/FIL FILIAL número da filial
Propriedades dos Identificadores O identificador deverá ser MÍNIMO, isso significa que se o identificador deve ser composto de tal forma que retirando-se um de seus atributos ou relacionamentos que o compõem, ele deixa de ser identificador. EMPREGADO telefone nome código Um identificador composto poderia ser, por exemplo, os atributos código e nome. Mas não forma um identificador mínimo, pois somente o código já é suficiente para tal.
Propriedades dos Identificadores Cada entidade deverá ter um ÚNICO identificador. EMPREGADO CPF código nome telefone A entidade Empregado tem dois atributos que poderiam ser o identificador da entidade: código ou CPF. Caberá então ao modelador decidir qual deles será utilizado como identificador.
Identificando Relacionamentos Um relacionamento é identificado pelas entidades dele participantes, bem como pelos seus próprios atributos identificadores porventura existentes. MÉDICO n CONSULTA n PACIENTE data/hora O atributo identificador de relacionamento data/hora distingue uma Consulta entre um Médico e seu Paciente entre as demais consultas deste Médico com os seus demais Pacientes.
Generalização/Especialização Através deste conceito é possível atribuir propriedades particulares a um subconjunto das ocorrências especializadas de uma entidade genérica. código nome FILIAL POSSUI (1,1) (0,n) CLIENTE A entidade especializada herda as propriedades da entidade genérica. CGC tipo PESSOA JURÍDICA PESSOA FÍSICA CPF sexo
Generalização/Especialização
Generalização/Especialização
Generalização/Especialização
Disjunção TOTAL quando para cada ocorrência da entidade genérica existe sempre uma ocorrência numa das entidades especializadas. código nome FILIAL POSSUI (1,1) (0,n) CLIENTE O diagrama descreve que os clientes desta filial ou são pessoas jurídicas o u p e s s o a s físicas. CGC tipo PESSOA JURÍDICA t PESSOA FÍSICA CPF sexo
Disjunção Disjunção PARCIAL quando nem toda ocorrência da entidade genérica possui uma ocorrência numa das entidades especializadas. código nome FILIAL POSSUI CLIENTE tipo (1,1) (0,n) O diagrama descreve que os clientes desta filial p o d e m s e r pessoas jurídicas, pessoas físicas ou outras. CGC tipo PESSOA JURÍDICA p PESSOA FÍSICA CPF sexo
Generalização/Especialização - Admite-se até que uma mesma entidade seja a especialização de diversas entidades genéricas ( herança múltipla). VEÍCULO VEÍCULO TERRESTRE VEÍCULO AQUÁTICO AUTOMÓVEL VEÍCULO ANFÍBIO BARCO
Generalização/Especialização - A generalização/especialização exclusiva descreve uma ocorrência da entidade genérica no máximo uma vez na generalização/especialização. - A generalização/especialização não exclusiva descreve mais de uma ocorrência da entidade genérica na generalização/ especialização. Quando ela ocorrer deverá ser tratada como relacionamentos entre as entidades envolvidas.
Entidade Associativa Por definição um relacionamento é uma associação entre entidades. Na modelagem ER não é prevista a possibilidade de associar uma entidade a um relacionamento, ou de associar dois relacionamentos entre si. Em certas oportunidades, durante a modelagem surgem situações nas quais é desejável permitir uma associação entre uma entidade e um relacionamento. MÉDICO n CONSULTA n PACIENTE Deseja-se modelar a prescrição de medicamentos receitados aos pacientes, com a criação da entidade Medicamentos.
Entidade Associativa Modelar a prescrição de medicamentos receitados aos pacientes, com a criação da entidade Medicamentos. 1ª SOLUÇÃO Relacionar Medicamento a Médico. Neste caso só se tem a informação de que Médico prescreveu qual Medicamento,não se tem a informação de qual Paciente os teve prescritos. 2ª SOLUÇÃO Relacionar Medicamento a Paciente. Neste caso só se tem a informação de qual Paciente teve prescrito tal Medicamento, não se tem a informação de qual Médico os prescreveu. 3ª SOLUÇÃO Sendo possível relacionar a entidade Medicamento com o relacionamento entre Médico e Paciente o problema estaria resolvido. Mas estaríamos relacionando uma entidade a um relacionamento, algo não previsto no MER.
Entidade Associativa MÉDICO n CONSULTA n PACIENTE n A solução é então transformar o relacionamento entre Médico e Paciente numa Entidade Associativa e relacioná-la com a entidade Medicamento. PRESCRIÇÃO n MEDICAMENTO
Entidade Associativa Outra solução seria transformar o relacionamento Consulta em entidade e relacioná-la às entidades Médico, Paciente e Medicamento. MÉDICO PACIENTE (1,1) (1,1) PRESCRIÇÃO PRESCRIÇÃO n n CONSULTA n PRESCRIÇÃO n MEDICAMENTO
Símbolos - DER