80
FACULDADE CENECISTA DE VARGINHA Apostila BANCO DE DADOS I BANCO DE DADOS I F A C E C A 2009

apostila do marcio.pdf

Embed Size (px)

DESCRIPTION

apostila do marcio

Citation preview

  • FACULDADE CENECISTA DE VARGINHA

    Apostila

    BANCO DE DADOS IBANCO DE DADOS I

    F A C E C A2009

  • NDICE ANALTICO

    Unidade I. CONCEITOS DE BANCO DE DADOS ..................................................................................................................... 9

    I.1. Banco de dados .............................................................................................................................................. 9 I.2. SGDB .............................................................................................................................................................. 9 I.3. PORQUE UTILIZAR BANCOS DE DADOS ................................................................................................. 11

    I.3.1. Eliminao da Redundncia ................................................................................................................. 11 I.3.2. Compartilhamento de Dados ................................................................................................................ 12 I.3.3. Controle de acesso ............................................................................................................................... 12 I.3.4. Relacionamentos complexos de dados ................................................................................................ 12 I.3.5. Disponibilidade ...................................................................................................................................... 12 I.3.6. Mltiplas Interfaces .............................................................................................................................. 12 I.3.7. Restries de Integridade ..................................................................................................................... 12 I.3.8. Backup e Restaurao .......................................................................................................................... 12

    I.4. CLASSIFICAO DE USURIOS DE BANCO DE DADOS ........................................................................ 12 I.4.1. Administrador de Banco de Dados ABD (DBA) ................................................................................... 12 I.4.2. Projetista de Banco de Dados .............................................................................................................. 13 I.4.3. Usurios Finais ..................................................................................................................................... 13 I.4.4. Analistas de Sistemas e Programadores de Aplicaes ...................................................................... 13

    I.5. ATIVIDADES ................................................................................................................................................. 14 Unidade II. MODELOS ............................................................................................................................................................ 15

    II.1. MODELOS DE DADOS ............................................................................................................................... 15 II.1.1. Modelo Hierrquico ............................................................................................................................. 15 II.1.2. Modelo em Rede .................................................................................................................................. 16 II.1.3. Modelo Relacional ............................................................................................................................... 17 II.1.4. Modelo Orientado a Objetos ................................................................................................................ 18 II.1.5. Esquema, Instncia e Estado de um Banco de Dados ........................................................................ 18 II.1.6. Arquitetura de Trs - Esquemas .......................................................................................................... 19

    II.2. ATIVIDADES ................................................................................................................................................ 21 Unidade III. MER ..................................................................................................................................................................... 22

    III.1. MODELO ENTIDADE E RELACIONAMENTO ........................................................................................... 22 III.1.1. Simbologia ER .................................................................................................................................... 22 III.1.2. Entidade e atributo .............................................................................................................................. 23 III.1.3. Domnio ............................................................................................................................................... 23

  • III.1.4. Relacionamento .................................................................................................................................. 24 III.1.5. Grau .................................................................................................................................................... 24 III.1.6. Cardinalidade ...................................................................................................................................... 25

    III.2. D.E.R. ......................................................................................................................................................... 27 III.3. ATIVIDADES ............................................................................................................................................... 29

    Unidade IV. MER-E ................................................................................................................................................................. 30

    IV.1. Subclasses, Superclasses e Especializaes ............................................................................................ 30 IV.2. Especializao ............................................................................................................................................ 31 IV.3. Generalizao ............................................................................................................................................ 32 IV.4. Lattice ou Mltipla Herana ...................................................................................................................... 33 IV.5. ATIVIDADES .............................................................................................................................................. 34

    Unidade V. MODELO RELACIONAL ....................................................................................................................................... 35

    V.1. Principais caractersticas das relaes ....................................................................................................... 35 V.2. Esquema e Restries de Integridade ........................................................................................................ 36

    Restries de domnio..................................................................................................................................36 Restries de domnio..................................................................................................................................36 Restries de domnio..................................................................................................................................36 Restries de chaves....................................................................................................................................36 Restries de chaves....................................................................................................................................36 Restries de chaves....................................................................................................................................36 Restries de integridade de entidade.........................................................................................................36 Restries de integridade de entidade.........................................................................................................36 Restries de integridade de entidade.........................................................................................................36 Restries de integridade referencial (RIR)..................................................................................................36 Restries de integridade referencial (RIR)..................................................................................................36 Restries de integridade referencial (RIR)..................................................................................................36

    V.3. ATIVIDADES ............................................................................................................................................... 38 Unidade VI. lgebra relacional ................................................................................................................................................ 39

    VI.1.1. Operadores ........................................................................................................................................ 40 VI.2. ATIVIDADES .............................................................................................................................................. 44

    Unidade VII. normalizao ....................................................................................................................................................... 46

    VII.1. Dependncias funcionais .......................................................................................................................... 47 VII.2. Formas normais baseadas em chaves primrias ...................................................................................... 48

    VII.2.1. Primeira Forma Normal (1FN) ........................................................................................................... 48 VII.2.2. Segunda Forma Normal (2FN) .......................................................................................................... 48

  • VII.2.3. Terceira Forma Normal (3FN): .......................................................................................................... 49 VII.3. ATIVIDADES ............................................................................................................................................. 50

    Unidade VIII. Linguagem SQL ................................................................................................................................................. 51

    VIII.1. Definio de dados em SQL ..................................................................................................................... 51 VIII.2. MANIPULAO DE DADOS EM SQL ..................................................................................................... 52 VIII.3. ATIVIDADES ............................................................................................................................................ 54

    Unidade IX. Prtica em ferramenta de designer ...................................................................................................................... 55

    IX.1. Projetando o banco de dados ..................................................................................................................... 55 IX.1.1. Modelagem conceitual. ...................................................................................................................... 56 IX.1.2. Projeto lgico. ..................................................................................................................................... 56 IX.1.3. Implementando o modelo conceitual .................................................................................................. 56 IX.1.4. Gerando o modelo fsico com o dbDesigner ...................................................................................... 60 IX.1.5. Sincronizao ..................................................................................................................................... 62 IX.1.6. Exportando o script ............................................................................................................................. 62 IX.1.7. Manipulao de dados ....................................................................................................................... 63 IX.1.8. Inserindo dados .................................................................................................................................. 64 IX.1.9. Consultando dados ............................................................................................................................. 65 IX.1.10. Engenharia reversa .......................................................................................................................... 65

    IX.2. ATIVIDADES .............................................................................................................................................. 68 Unidade X. introduo ao firebird ............................................................................................................................................ 69

    X.1. Principais Recursos ..................................................................................................................................... 69 X.2. Testado O Firebird ....................................................................................................................................... 70 X.3. Documentao ............................................................................................................................................ 70 X.4. Ferramentas e Componentes ...................................................................................................................... 70 X.5. ATIVIDADES ............................................................................................................................................... 72

    Unidade XI. Usando o IBExpert ............................................................................................................................................... 73

    XI.1. Fazendo o registro do banco de dados .................................................................................................... 74 XI.2. Criando um banco de dados Firebird no IBExpert ................................................................................... 75 XI.3. Criando as tabelas do banco de dados .................................................................................................... 76 XI.4. Criando a chave estrangeira na tabela PROFESSOR ............................................................................ 78 XI.5. ATIVIDADES .............................................................................................................................................. 79

  • NDICE DE FIGURAS

    Figura 1 Estrutura de um SGDB...........................................................................................................................................11Figura 2 Diagrama de estrutura em rvore Registro de compras......................................................................................16Figura 3 Diagrama do modelo em redes...............................................................................................................................17Figura 4 Exemplo do modelo relacional................................................................................................................................17Figura 5 Exemplo de banco de dados orientado a objetos...................................................................................................18Figura 6 Exemplo de esquema de banco de dados..............................................................................................................19Figura 7 Arquitetura em trs esquemas................................................................................................................................19Figura 8 Esquema de modelagem MER...............................................................................................................................22Figura 9 Exemplo de chave composta e chave simples.......................................................................................................23Figura 10 - Relacionamento entre entidades...........................................................................................................................24Figura 11 Relacionamento ternrio.......................................................................................................................................25Figura 12 Grau de relacionamento.......................................................................................................................................25Figura 13 Relacionamento reflexivo.....................................................................................................................................25Figura 14 Cardinalidade 1 para 1.........................................................................................................................................25Figura 15 Cardinalidade 1 para n.........................................................................................................................................25Figura 16 Cardinalidade 1 para muitos.................................................................................................................................26Figura 17 Relao de participao parcial............................................................................................................................26Figura 18 Cardinalidade mnima...........................................................................................................................................26Figura 19 Exemplo de cardinalidade mxima.......................................................................................................................26Figura 20 Exemplo de cardinalidade mnima e mxima.......................................................................................................27Figura 21 Exemplo de DER..................................................................................................................................................28Figura 22 - Representao de Superclasse e Subclasses......................................................................................................31Figura 23 - Duas Especializaes para Empregado: Funo e Categoria Salarial..................................................................31Figura 24 - Relacionamentos Entre Subclasses e Entidades..................................................................................................32Figura 25 - Tipos Entidades Engenheiro e Secretria.............................................................................................................32Figura 26 - Generalizao Empregado para os Tipos Entidades Engenheiro e Secretria.....................................................32Figura 27 - Uma Generalizao com Overlap.......................................................................................................................33Figura 28 - Um Lattice com a Subclasse Gerente Compartilhada.........................................................................................33Figura 29 Exemplo de modelo relacional..............................................................................................................................35Figura 30 Exemplo de modelo ER criado com dbDesigner..................................................................................................39Figura 31 Exemplo de tabelas..............................................................................................................................................39Figura 32 Exemplo da operao Unio..............................................................................................................................40Figura 33 Exemplo da operao Interseco.....................................................................................................................40Figura 34 Exemplo da operao Diferena........................................................................................................................40Figura 35 Exemplo da operao Produto cartesiano..........................................................................................................40

  • Figura 36 Exemplo da operao Seleo...........................................................................................................................41Figura 37 Exemplo da operao Projeo.........................................................................................................................42Figura 38 Exemplo da operao Diviso............................................................................................................................42Figura 39 Exemplo da operao Juno............................................................................................................................43Figura 40 Exemplo da operao Juno distinta................................................................................................................43Figura 41 Exemplo da operao Renomear.......................................................................................................................43Figura 42 Decomposio de relaes...................................................................................................................................46Figura 43 - Modelo conceitual de uma locadora......................................................................................................................56Figura 44 - Interface grfica do dbdesigner.............................................................................................................................57Figura 45 Janela de edio de tabelas do dbdesigner..........................................................................................................58Figura 46 Resultado da implementao do modelo conceitual com dbdesigner..................................................................58Figura 47 - Definindo relacionamentos....................................................................................................................................59Figura 48 - Janela de edio do relacionamento.....................................................................................................................59Figura 49- Notao (p-de-galinha).........................................................................................................................................60Figura 50 - Resultado da modelagem......................................................................................................................................60Figura 51 - Janela de conexo ao banco de dados.................................................................................................................61Figura 52 - Exibindo/criando banco de dados..........................................................................................................................61Figura 53 - Estabelecendo conexo ao banco.........................................................................................................................61Figura 54 - Sincronizao com o banco de dados...................................................................................................................62Figura 55 - Opes de exportao..........................................................................................................................................63Figura 56 - Modo de manipulao de dados (query mode).....................................................................................................64Figura 57 - Janela de manipulao de dados..........................................................................................................................64Figura 58 - Menu para manipulao de dados........................................................................................................................65Figura 59 - Criando o modelo fsico.........................................................................................................................................66Figura 60 - Janela com opes para engenharia reversa........................................................................................................67Figura 61 - Resultado da engenharia reversa..........................................................................................................................67Figura 62 - Passos para registrar bancos de dados no IBExpert.............................................................................................74Figura 63 - Banco de dados PROF.GDB registrado no IBExpert..........................................................................................75Figura 64 - Passos para criar bancos de dados no IBExpert...................................................................................................76Figura 65 - Passos para criar a tabela TITULO.......................................................................................................................77Figura 66 - Passos para criar a tabela PROFESSOR...........................................................................................................78Figura 67 - Passos para criar a chave estrangeira na tabela PROFESSOR.........................................................................78

  • 7PREFCIO

    Este material compreende o contedo bsico da disciplina Banco de dados I do curso de Sistemas de Informao.Esta disciplina tem como principal objetivo, possibilitar a compreenso destes sistemas e ainda permitir um bom referencial para construo de bases de dados funcionais e adequadas s necessidades do negcio em questo.Compem este material o contedo bsico para a compreenso da importncia dos bancos de dados, os principais modelos de dados utilizados, conceitos bsicos sobre o funcionamento das estruturas de armazenamento, design, manipulao e acesso aos dados que compem um sistema de informao de uma organizao. Tambm, caracteriza os diversos profissionais envolvidos com um sistema de gerenciamento de banco de dados e alguns modelos de ferramentas necessrias para lidar com esta tecnologia em diversos nveis.Alm de trazer um referencial que possibilita a compreenso dos principais conceitos, este material apresenta ferramentas, exemplos e aplicaes prticas que possibilitam ao aluno entender, observar e praticar a construo de bancos de dados de acordo com o cenrio de estudo.A linguagem SQL ser abordada fundamentalmente para permitir que o aluno possa executar as principais operaes que vo desde a construo de estruturas de dados, manipulao, consultas e controle de acesso.Outros conceitos mais avanados sero tratados da disciplina de banco de dados II.Ao final do perodo o aluno ter condies de projetar banco de dados relacional, manipular dados e extrair informaes conforme suas necessidades.

  • 8INTRODUO

    Banco de dados sempre teve um peso alto no conjunto que compreende o conceito de informatizao nas empresas. Associado a uma boa estrutura de equipamentos, telecomunicaes e redes, forma a infra-estrutura bsica para manipular e disponibilizar as informaes vitais para as organizaes modernas. Compreender o funcionamento e saber utilizar informaes disponveis nas complexas estruturas de dados das empresas tornou-se um requisito bsico para um profissional de TI.Lembramos, porm, que para projetar um banco de dados para um negcio complexo ser exigido muito mais do que conceitos bsicos e domnio de ferramentas ou tecnologias. Ser preciso entender, ou at mesmo, dominar o negcio em si para permitir a abstrao do modelo ideal das estruturas que iro armazenar, manipular e disponibilizar as informaes em necessrias.

  • 9UNIDADE I.UNIDADE I. CONCEITOS DE BANCO DE DADOSCONCEITOS DE BANCO DE DADOS

    I.1. BANCO DE DADOS

    O que um banco de dados?

    Bancos de Dados (BD Database) so conjuntos de dados relacionados e acessveis. Dados so fatos conhecidos, que podem ser registrados e possuem significado.Um Banco de Dados contm os dados dispostos numa ordem pr-determinada em funo de um projeto de sistema, sempre para um propsito muito bem definido.Sistemas Gerenciadores de Bancos de Dados (SGBD ou DBMS Database Management System) so sistemas que gerenciam BD, ou so linguagens utilizadas para manter os BD.Banco de Dados um conjunto de dados armazenados, cujo contedo informativo representa, a qualquer instante, o estado de uma determinada aplicao. Um banco de dados um modelo de uma determinada parte da realidade, geralmente denominada de Universo de Discurso.

    I.2. SGDB

    Um SGBD - Sistema de Gerenciamento de Banco de Dados uma coleo de programas que permitem ao usurio definir, construir e manipular Bases de Dados para as mais diversas finalidades. Um conceito que dever ficar bastante claro inicialmente o que envolve a separao clara entre os Gerenciadores de Base de Dados dos Gerenciadores de Arquivo. importante salientar que, para que uma estrutura de armazenamento de dados seja considerada um Sistema de Gerenciamento de Dados (SGDB), necessrio que contenha algumas propriedades bsicas:1) Autoconteno: Um SGBD deve armazenar os dados e todas as informaes sobre sua estrutura, denominada Meta-Base de Dados.2) Independncia dos Dados: Toda mudana na estrutura de armazenamento e estratgia de acesso aos dados dever ser realizada diretamente no banco de dados.3) Abstrao dos Dados: Um SGBD fornece ao usurio somente uma representao conceitual dos dados sem incluir maiores detalhes sobre sua forma de armazenamento real. Somente o esquema das tabelas, seus relacionamentos e suas chaves de acesso so exibidos ao usurio.

  • 10

    4) Mltiplas Vises de dados: O banco de dados deve permitir que cada usurio visualize os dados de forma diferente daquela definida em sua estrutura bsica sem ter que gerar nova estrutura e transferir os dados para esta.5) Transaes: Um SGBD deve gerenciar toda a integridade referencial definida em sua estrutura, sem precisar do auxlio do programador. Assim, o banco de dados deve permitir a gravao de uma srie modificaes simultneas e atravs de uma instruo ser capaz de revert-la.Tudo para garantir que todas as informaes sejam processadas corretamente ou que todas sejam canceladas em caso de pelo menos uma delas ser mal sucedida.6) Acesso automtico: O SGBD deve ser capaz de gerenciar o acesso e gravao simultnea de dados por vrios usurios sem a interao do programador no travamento de registros e tabelas.Outras caractersticas importantes:

    Controle de redundncia dos dados; Compartilhamento de dados entre mltiplos usurios; A restrio de acesso aos dados para usurios no autorizados; Os diferentes tipos de interface para os diferentes usurios; A representao dos dados com um nvel grande de complexidade; Garantia da restrio de integridade, que mantm os dados ntegros; Mecanismos de segurana dos dados, tais como, cpia (backup) e recuperao

    (recovery) de dados; Flexibilidade na mudana das estruturas de dados; Garantia de que dados sempre atuais esto disponveis; Economia de escala relacionada com a reduo do tempo de desenvolvimento da

    aplicao, j que um dado usado uma vez continuar disponvel para outras aplicaes.

    O grupo DevMedia (www.devmedia.com.br) publica mensalmente revista SQL Magazine. Trata-se de um veculo extremamente rico em contedos para iniciantes e profissionais de banco de dados.Alm dos contedos impressos h diversos artigos e vdeos interessantes. Para quem no assinante, h muitos contedos gratuitos.

  • 11

    Figura 1 Estrutura de um SGDB

    I.3. PORQUE UTILIZAR BANCOS DE DADOS

    I.3.1.Eliminao da Redundncia

    Quando no h um banco de dados disponvel a todos, cada grupo de usurios mantm seu prprio conjunto de arquivos e dados. Ocasionando duplicaes de informaes importantes, verses diferentes de dados, falta de integridade, maior espao para armazenamento, dificuldade para recuperar dados nas diversas origens e muito tempo para obter informaes consolidadas alm de outras dificuldades.

  • 12

    I.3.2.Compartilhamento de Dados

    Um SGBD multi-usurio permite que diversos grupos de usurios acessem e alimentem as informaes ao mesmo tempo. Isto significa aumento do controle e manuteno dos dados atualizados. Com a disseminao do uso da Internet possvel acessar informaes em qualquer lugar do mundo a um custo razovel e com uso de diversos dispositivos digitais.

    I.3.3.Controle de acesso

    Um SGBD oferece um subsistema de autorizao e segurana que permite criar contas e especificar suas restries conforme as necessidades de cada usurio. O controle de acesso s informaes inclui mecanismos que evitem a invaso, alteraes restritas e visualizao apenas dos dados necessrios.

    I.3.4.Relacionamentos complexos de dados

    Um banco de dados permite combinar dados de diversos departamentos, projetar informaes complexas, processar informaes que envolvem diversas origens e apresentar resultados simplificados para usurios finais.

    I.3.5.Disponibilidade

    Um SGBD permite recuperao de falhas tanto de software quanto de hardware. Isto inclui tecnologias que replicaram, verificam e reconstroem contineres de dados sem parar de funcionar para que os subsistemas se mantenham em pleno funcionamento.

    I.3.6.Mltiplas Interfaces

    Devido aos vrios tipos de usurios, com variados nveis de conhecimento tcnico, um SGBD precisa fornecer diversas interfaces conforme a necessidade e nvel do usurio. Os tipos de interfaces incluem linguagens de consulta para usurios ocasionais, interfaces de linguagem de programao para programadores de aplicaes, formulrios e interfaces dirigidas por menus para usurios comuns.

    I.3.7.Restries de Integridade

    Um banco de dados deve permitir que se estabeleam restries que garantam o mximo de integridade entre os dados. Um bom exemplo a especificao de que um registro de um arquivo deve estar relacionado a registros de outros arquivos. Existe tambm a restrio que impede a repetio de determinado informao. Existem restries que so executadas automaticamente durante a manipulao das informaes e outras realizadas por ferramentas ou recursos que fazem a verificao e ajustes necessrios.

    I.3.8.Backup e Restaurao

    Um SGBD deve fornecer recursos para restaurao caso ocorram falhas de hardware ou software. O subsistema de backup e restaurao do SGBD o responsvel pela restaurao. O backup dever ser possvel enquanto o banco de dados est em uso e permitir que as transaes sejam tratadas para evitar a corrupo dos dados. A restaurao dever permitir que as restries sejam verificadas para garantir integridade dos dados restaurados.

    I.4. CLASSIFICAO DE USURIOS DE BANCO DE DADOS

    I.4.1.Administrador de Banco de Dados ABD (DBA)

    Cabe ao Administrador de Banco de Dados a responsabilidade pela autorizao de acesso ao banco de dados e pela coordenao e monitorao de seu uso.

  • 13

    I.4.2.Projetista de Banco de Dados

    Realiza a identificao dos dados que devem ser armazenados, escolhendo a estrutura correta para representar e armazenar dados. funo do projetista tambm avaliar as necessidades de cada grupo de usurios para definir as vises que sero necessrias, integrando-as, fazendo com que o banco de dados seja capaz de atender a todas as necessidades dos usurios. Pode ser uma pessoa ou um grupo de pessoas, que ir interagir com outras classes de usurios, tanto os analistas e programadores, como os chamados usurios finais do sistema

    I.4.3.Usurios Finais

    So os usurios finais do banco de dados que fazem consultas, atualizaes e geram documentos:Usurios casuais: acessam o banco de dados casualmente, mas que podem necessitar de diferentes informaes a cada acesso; utilizam linguagens de alto nvel de consulta para especificar suas necessidades;Usurios novatos ou paramtricos: utilizam pores pr-definidas do banco de dados, utilizando consultas preestabelecidas que j foram avaliadas.Usurios avanados: So usurios familiarizados com o SGBD que realizam consultas complexas.

    I.4.4.Analistas de Sistemas e Programadores de Aplicaes

    Os analistas determinam os requisitos dos usurios finais e desenvolvem especificaes para transaes que atendam estes requisitos. Quanto aos programadores, implementam estas especificaes como programas, testando, depurando, documentando e dando manuteno no mesmo. importante que, tanto analistas quanto programadores, conheam bem os recursos oferecidos pelo SGBD.

  • 14

    I.5. ATIVIDADES

    Questo 1.1: Cite 5 SGDBs conhecidos:

    Questo 1.2. Qual e a principal vantagem do fato de armazenar os dados em um arquivo separado de sua definio?

    Questo 1.3. Quais so os principais problemas ocasionados por empresas que no fazem uso de um SGDB e precisa manipular muitas informaes?

    Questo 1.4. Defina os seguintes termos: independncia entre programas e dados, viso do usurio, metadados.

  • 15

    UNIDADE II.UNIDADE II. MODELOSMODELOS

    II.1. MODELOS DE DADOS

    Modelo de dados um conjunto de conceitos usado para representar a estrutura do BD e as restries que o banco deve garantir. a maneira utilizada para se representar os dados de forma abstrata, onde detalhes sobre o armazenamento dos dados so escondidos dos usurios.A grande maioria dos modelos de dados possui um conjunto de operaes bsicas como:

    Insero: para incluir novos itens (novos registros) ao modelo; Remoo: para excluir itens do modelo; Alterao: que modifica dados j includos no modelo; Recuperao: que faz uma consulta aos dados do modelo, sem alter-los.

    Categorias de modelos:Modelo Conceitual Mais alto nvel, prximo do modo como os usurios percebem os dados. baseado em entidades, atributos e relacionamentos, e descreve a estrutura dos dados de maneira abstrata sem tratar da implementao fsica. Exemplo: Modelo Entidade-Relacionamento.Modelo de Implementao representativo e est em um nvel intermedirio. Tambm chamados de modelo lgicos, fornecem conceitos que podem ser entendidos pelos usurios, mas esto prximos de como os dados sero implementados. Exemplo: Modelo Relacional.Modelo Fsico Mais baixo nvel, usado por especialistas. Oferece conceitos que descrevem detalhes de como os dados esto armazenados.

    II.1.1.Modelo Hierrquico

    O modelo hierrquico foi o primeiro a ser desenvolvido. Nesse modelo de dados, os dados so estruturados em hierarquias ou rvores. Os ns das hierarquias contm ocorrncias de registros, onde cada registro uma coleo de campos (atributos), cada um contendo apenas uma informao. O registro da hierarquia que precede a outros o registro-pai, os outros so chamados de registros-filhos. A associao entre dois registros denominada ligao. O relacionamento entre um registro-pai e vrios registros-filhos possui cardinalidade 1:N. Os dados organizados neste modelo podem ser acessados em uma seqncia hierrquica com navegao do topo para as folhas e da esquerda para a direita. Um registro pode associar-se a vrios registros diferentes, desde que seja replicado. Problemas da replicao:

    Pode causar inconsistncia de dados quando houver atualizao Desperdcio de espao inevitvel.

    Exemplo mais conhecido do modelo hierrquico: Information Management System da IBM Corp(IMS). Grande parte das restries e consistncias de dados estava contida dentro dos programas escritos para as aplicaes. Era necessrio escrever programas na ordem para acessar o banco de dados. Um diagrama de estrutura de rvore descreve o esquema de um banco de dados hierrquico. Este diagrama consiste em dois componentes bsicos: Caixas, as quais

  • 16

    correspondem aos tipos de registros e Linhas, que correspondem s ligaes entre os tipos de registros. Como exemplo do modelo hierrquico, considere a Figura 2 abaixo.

    Figura 2 Diagrama de estrutura em rvore Registro de compras

    II.1.2.Modelo em Rede

    uma evoluo do modelo hierrquico, onde a principal mudana a remoo da hierarquia que permitiu vrias associaes de um mesmo registro.Os registros so organizados em grafos onde aparece um nico tipo de associao (set) que define uma relao 1:N entre 2 tipos de registros: proprietrio e membro. Assim, dados dois relacionamentos 1:N entre os registros A e D e entre os registros C e D possvel construir um relacionamento M:N entre A e D. Atravs do Data Base Task Group (DBTG) da CODASYL (Committee on Data Systems and Languages) surgiu uma norma para este modelo de banco de dados, com linguagem prpria para definio e manipulao. A independncia fsica dos dados era limitada. A nica garantia era que o sistema deveria recuperar os dados para as aplicaes como se eles estivessem armazenados na maneira indicada nos esquemas. Os geradores de relatrios da CODASYL tambm definiram sintaxes para dois aspectos chaves dos sistemas gerenciadores de dados: concorrncia e segurana. O mecanismo de segurana permitia estabelecer bloqueios de acesso simultneo a parte do banco de dados, quando necessrio, por meio de uma senha associada a cada objeto descrito no esquema. Ao contrrio do Modelo Hierrquico, em que qualquer acesso aos dados passa pela raiz, o modelo em rede possibilita acesso a qualquer n da rede sem passar pela raiz. Como exemplo, podemos citar o CA-IDMS da Computer Associates. O diagrama para representar os conceitos do modelo em redes consiste em dois componentes bsicos: Caixas, que correspondem aos registros e Linhas, que correspondem s associaes. A Figura 3 ilustra um exemplo de diagrama do modelo em rede.

    Nome CPF

    Dt_compra Valor Humberto 125.253.253-58

    15/06/2008 589,99

    Vanessa 857.256.856-55

    15/05/2009 120,00

  • 17

    Figura 3 Diagrama do modelo em redes

    II.1.3.Modelo Relacional

    O modelo relacional um dos modelos mais utilizados e, apesar das recentes atualizaes, ainda considerado um padro para a maioria das aplicaes em banco de dados.Aspectos do banco de dados relacional:Estrutural: Os dados so apresentados em forma de tabelaIntegridade: Preciso ou correo de dados para garantir que um mnimo de regras sejam sempre respeitadas.Manipulativo: Os dados podem ser combinados em consultas atravs de operaes como restrio, projeo e juno.Descrio informal:As tuplas so as linhas de uma tabela e os cabealhos das colunas so chamados de atributos. O conjunto de todos os valores possveis de aparecer em cada coluna chamado de domnio, ou seja, o domnio o tipo do dado que pode ser inserido em determinado atributo.Descrio formal:Expresso de um esquema de relao: R(A1,A2,...,An)Onde: R o nome de uma relao; Ai o nome de um atributo que representa um papel de um domnio D em R dom (Ai); n o grau da relao. Uma relao r(R) um conjunto de n-tuplas r = {t1, t2,..., tn}, onde cada n-tupla t uma lista ordenada de n valores t=(v1, v2,...,vn), sendo cada vi um elemento do dom(Ai) ou um valor especial nulo.

    CPF Nome253.369.258-41 Jos Bartolomeu258.456.789-21 Ana Maria256.859.789-85 ngela Maria

    Num_venda CPF_cliente Data Valor0001 253.369.258-41 01/01/09 150,000002 258.456.789-21 03/01/09 160,000003 258.456.789-21 15/04/09 180,000004 256.859.789-85 20/04/09 320,00

    Figura 4 Exemplo do modelo relacional

    Nome CPF Dt_com Valor

    Nome CPF Dt_com Valor

    Nome CPF Dt_com Valor

    Nome CPF Dt_com Valor

    Dt_com Valor

  • 18

    II.1.4.Modelo Orientado a Objetos

    Surgiu nos anos 80 a partir do modelo relacional para utilizao, principalmente, com linguagens de programao orientadas a objetos. Este modelo mais apropriada para tratar objetos complexos como textos, grficos e imagens.Alguns exemplos so os sistemas de informaes geogrficas (SIG), os sistemas CAD e CAM, que so mais facilmente construdos usando tipos complexos de dados.O modelo OO no se baseia em tabelas, mas sim em uma coleo de objetos com seus atributos acessados atravs de seus mtodos. Como referncia ao modelo relacional, podemos dizer que uma tabela equivale a uma classe no banco de dados OO.O diagrama de classes UML muito apropriado para representar o esquema do modelo de dados orientado a objetos.

    Figura 5 Exemplo de banco de dados orientado a objetos

    II.1.5.Esquema, Instncia e Estado de um Banco de Dados

    Esquema: a descrio da estrutura de um BD, diferente dos dados em si. Um esquema de BD pode ser textual ou grfico.Exemplo de esquema textual:

    CREATE TABLE T005LOG ( T005IDLOG INTEGER NOT NULL, T005IDUSER SMALLINT NOT NULL, T005IDOPER SMALLINT NOT NULL, T005DATA TIMESTAMP DEFAULT 'now' NOT NULL, T005COMPUTADOR VARCHAR(15), T005IP VARCHAR(15), T005DESCRICAO VARCHAR(60) NOT NULL, T005NOMEUSER VARCHAR(20));

    Exemplo de esquema grfico:

  • 19

    Figura 6 Exemplo de esquema de banco de dados

    Instncias: So os dados armazenados no BD em um determinado instante no tempo, ou dados correntes do BD em um momento particular, ou ainda chamados de dados atuais do BD. O conjunto formado por todas as instncias do BD, em um determinado momento, pode ser chamado de retrato (snapshot) ou estado do BD. Estado do Banco de Dados (snapshot): o conjunto formado por todas as instncias do BD em um dado momento.

    II.1.6.Arquitetura de Trs - Esquemas

    A arquitetura de trs - esquemas foi proposta pelo comit ANSI/SPARC com o propsito de facilitar o entendimento de algumas caractersticas dos bancos de dados.

    O isolamento de programas e dados; O suporte de mltiplas vises dos dados; A utilizao do catlogo para armazenar o esquema do BD.

    Figura 7 Arquitetura em trs esquemas

    T005COMPUTADT005LOG

    T005IDLOT005DATA

    T005IDOPER

    T005NOMEUSER

    T005DESCRICAOT005IP

    T005IDUSER

  • 20

    Nvel interno possui um esquema interno, que descreve a estrutura de armazenamento fsico do BD. Compreende os detalhes completos sobre o armazenamento de dados e os caminhos de acesso ao BD.Nvel conceitual possui um esquema conceitual, que descreve a estrutura completa do BD para os usurios. Oculta os detalhes do armazenamento fsico e preocupa-se em descrever entidades, tipos de dados, relacionamentos, operaes de usurios e restries. Nvel externo (Viso) inclui um nmero de esquemas internos de acordo com usurio ou grupo de usurios ocultando os dados que no interessam.Os mapeamentos (mappings) so processos de transformaes entre os diferentes nveis de esquemas para uma aplicao, ou seja, a passagem de um nvel de esquema conceitual para um esquema de implementao.

    Qual a diferena ente DADO e Informao?Dado o valor cadastrado no banco de dados, no tem utilidade se considerado isoladamente. Exemplo: Nome ou nmero da casa.Informao um conjunto de dados que de acordo com um contexto, representa algo para o usurio. Exemplo: CPF, Nome, empresa e salrio mensal.

  • 21

    II.2. ATIVIDADES

    Questo 2.1. Quais so as principais desvantagens dos modelos hierrquico e de rede?

    Questo 2.2. Desenhe abaixo um diagrama (grfico) de uma entidade qualquer.

    Questo 2.3. Descreva o que voc entendeu da figura 7:

  • 22

    UNIDADE III.UNIDADE III. MERMER

    III.1. MODELO ENTIDADE E RELACIONAMENTO

    O modelo Entidade/Relacionamento (ER) um modelo de dados conceitual de alto nvel grfico e muito popular, frequentemente utilizado para o projeto conceitual dos dados, que servir de base para o projeto fsico. Na maioria das vezes esta etapa de modelagem dos dados precisa de informaes das especificaes das operaes bsicas feitas pelos usurios finais, para que o modelo possa ser desenhado.

    Figura 8 Esquema de modelagem MER

    III.1.1.Simbologia ER

    Representao Conceito DefinioTipo de entidade ou

    entidadeSo conjuntos de instncias. Algo do mundo real que possui uma existncia independente. Exemplo: Pessoa, carro, empregado.

    Entidade fraca Entidades que dependem de outra. Possui chave parcial. Exemplo: Dependentes de um funcionrio identificados pelo RG + Nome.

    Tipo de relacionamento

    So relaes entre entidades. O funcionrio trabalha para a empresa.

    Relacionamento identificador

    Relacionamento que identifica a informao.

    Atributos Caractersticas comuns s instncias que formam das entidades. Exemplo: CPF,Nome,Cdigo

  • 23

    Atributo multi valorado

    Atributo que recebe mltiplos valores. Exemplo: Um livro possui vrias edies, logo, edio um atributo multi valorado.

    Atributo composto Atributo composto pode diversos dados. Exemplo: Endereo que composto por: Tipo de logradouro, nome do logradouro, nmero e complemento.

    Totalidade Restrio imposta s entidades e aos relacionamentos, onde todas as instncias de 1 entidade tm que estar relacionadas a instncias da outra entidade.

    Cardinalidade 1 para N

    Taxa de Cardinalidade 1:N para E1:E2 em R

    Cardinalidade Total/Parcial

    Participao Parcial de E1 em R, Participao Total de E2 em R

    Restrio Restrio Estrutural (min,max) na Participao de E1 em R

    Relacionamento binrio recursivo

    Relacionamento que envolve a mesma entidade. Exemplo: Funcionrio Chefe.

    III.1.2.Entidade e atributo

    O objeto bsico que o MER representa a entidade. Uma entidade algo do mundo real que possui uma existncia independente. Uma entidade pode ser um objeto com uma existncia fsica - uma pessoa, carro ou empregado - ou pode ser um objeto com existncia conceitual - uma companhia, um trabalho ou um curso universitrio. Cada entidade tem propriedades particulares, chamadas atributos, que a descrevem. Por exemplo, uma entidade EMPREGADO pode ser descrita pelo seu nome, o trabalho que realiza, idade, endereo e salrio. Uma entidade em particular ter um valor para cada um de seus atributos. Os valores de atributos que descrevem cada entidade ocupam a maior parte dos dados armazenados na base de dados.

    III.1.3.Domnio

    O domnio de um atributo o conjunto de todos os possveis valores que poderiam ser atribudos a uma instncia de um determinando atributo. Por exemplo, para o atributo Nmero da entidade Alunos o domnio o conjunto formado pelos nmeros inteiros.Dois atributos podem ter o mesmo domnio, mais amplo, como por exemplo, na entidade Livros, os atributos PrCusto e PrVenda possuem o mesmo domnio amplo dos nmeros reais.

    Figura 9 Exemplo de chave composta e chave simples

  • 24

    III.1.4.Relacionamento

    Relacionamento ou tipo de relacionamento uma associao entre duas ou mais entidades distintas (ou instncias distintas de uma entidade), com um determinado significado. Por exemplo: Alunos Pedro CURSA Cursos Sistemas de Informao.Um tipo de relacionamento R entre n tipos de entidades e1, e2, ..., en define um conjunto de associaes entre entidades desse tipo. Por exemplo, o tipo de relacionamento CURSA, entre as entidades ALUNOS e CURSOS. Neste caso qualquer instncia da entidade Alunos poderia estar relacionada a uma instncia da entidade Cursos.

    III.1.5.Grau

    Grau de um tipo de relacionamento o nmero de tipos de entidades participantes de um tipo de relacionamento. Na maioria das vezes os relacionamentos so binrios (grau 2). Alguns autores defendem que no deva existir relacionamentos com grau maior que 2, porm na prtica isso no acontece. No caso de relacionamentos ternrios, na maioria das vezes possvel transform-lo em dois relacionamentos binrios.O nmero de entidades que participam de um tipo relacionamento irrestrito e armazenam muito mais informaes do que diversos relacionamentos binrios. Considere o seguinte exemplo:Um Motorista pode efetuar uma viagem para uma Localidade dirigindo um determinado Caminho em uma determinada Data.Se efetuarmos trs relacionamentos binrios, no teremos estas informaes de forma completa como se crissemos um relacionamento ternrio. Veja o resultado como fica no exemplo da figura abaixo:

    Figura 10 - Relacionamento entre entidades

  • 25

    Figura 11 Relacionamento ternrio

    Figura 12 Grau de relacionamento

    Um relacionamento dito recursivo quando este relaciona uma nica entidade, atravs de dois papis distintos. Neste caso, o relacionamento ocorre entre instncias distintas de uma mesma entidade. Por exemplo:

    Figura 13 Relacionamento reflexivo

    III.1.6.Cardinalidade

    Relao de cardinalidade especifica o nmero de instncias de um tipo de relacionamento que uma entidade pode participar. Para relacionamentos binrios pode ser: 1 para 1 (1:1), 1 para n (1:n), n para 1 (n:1) ou n para m (n:m).Exemplo 1: Tipo de relacionamento 1:1 neste caso est sendo especificado que um professor (e somente um) coordena um (e somente um) curso, ou seja, o mesmo professor no pode coordenar mais de um curso e um curso no pode ser coordenado por mais de um professor.

    Figura 14 Cardinalidade 1 para 1

    Exemplo 2: Tipo de relacionamento 1:n ou n:1 neste caso est sendo especificado que um curso cursado por n alunos, porm um aluno s pode cursar um (e somente um) curso. Ele chamado de 1:n ou n:1 a depender da direo do relacionamento que observado, ou seja, 1 curso possui n alunos, mas cada um dos n alunos s pode cursar 1 curso.

    Figura 15 Cardinalidade 1 para n

    Exemplo 3: Tipo de relacionamento n:m neste caso est sendo especificado que um mesmo professor pode lecionar em n cursos, e que um curso formado por m professores.

  • 26

    Figura 16 Cardinalidade 1 para muitos

    Relao de participao especifica se a existncia da entidade depende dela estar associada ou no a outra entidade. Pode ser chamada de obrigatria (total) ou opcional (parcial).A relao de participao parcial representada de forma simples, pois corresponde maioria dos casos, e a obrigatria representada por trao duplo, como pode ser observado no exemplo abaixo: Neste caso est sendo especificado que todo aluno tem que, obrigatoriamente estar cursando algum curso, porm pode haver algum curso que no possua alunos inscritos.

    Figura 17 Relao de participao parcial

    Cardinalidade mnima: define se o relacionamento entre duas tabelas obrigatrio ou no.Para que voc compreenda melhor a cardinalidade mnima entre as tabelas, observe o exemplo a seguir, que representa a relao entre Pas e Unidades Federativas (UF).

    Pas

    Possui

    UFPertence

    Figura 18 Cardinalidade mnima

    Analisando a figura, possvel perceber que um pas pode ser cadastrado sem que haja uma unidade federativa para ele. Por isso a representao de um zero (0) na cardinalidade mnima da entidade Pas para a entidade UF.Por outro lado, na cardinalidade mnima de UF para Pas h uma cardinalidade mnima de 1 ( representada por |). Ou seja, uma unidade federativa deve pertencer a um nico pas. Dessa forma, o diagrama acima pode ser lido como:Cardinalidade mnima:

    Cada pas pode ou no possuir UF; Cada UF deve pertencer a um nico Pas.

    Cardinalidade mxima: define a quantidade mxima de ocorrncia entre as entidades que participam de um relacionamento.Observe a seguir as mesmas entidades Pas e UF, porm representadas pela cardinalidade mxima.

    Pertence

    Possui

    Pas UF

    Figura 19 Exemplo de cardinalidade mxima

  • 27

    Analisando a figura, possvel perceber que um pas pode ter vrias unidades federativas. Por isso a representao por meio do smbolo Por outro lado, na cardinalidade mxima de UF para Pas continua com a cardinalidade mxima de 1 ( representada p | ). Ou seja, uma unidade federativa deve pertencer a um nico pas.Dessa forma, o diagrama acima pode ser lido como:

    Cardinalidade mxima:

    Cada Pas pode no possuir, possuir uma ou vrias UF; Cada UF deve pertencer a um nico Pas.

    Juntando a cardinalidade mxima e mnima desse modelo, tem-se o seguinte diagrama:

    Pertence

    Possui

    Pas UF

    Figura 20 Exemplo de cardinalidade mnima e mxima

    Neste diagrama, um pas pode ou no ter unidades federativas e uma unidade federativa obrigatoriamente deve pertencer a uma entidade pas.

    III.2. D.E.R.

    DER (Diagrama de Entidade e Relacionamento) o grfico que representa a estrutura de um banco de dados no modelo ER. Observe a figura abaixo onde aparecem exemplos de um diagrama com os principais elementos do MER.

  • 28

    Figura 21 Exemplo de DER

    Acesse University of Arkansas (http://www.uaex.edu/srea/)Site que disponibiliza material muito rico nos detalhes e com bons exemplos e aplicabilidade para Oracle.A Oracle lanou em novembro de 2005, o Oracle Database Express Edition 10g (free). Disponvel somente para Windows 32 bits e Linux 32 bits. Suporta at 4 GB de dados.

  • 29

    III.3. ATIVIDADES

    Questo 3.1. Desenha abaixo um DER que representa o relacionamento entre uma entidade forte e uma entidade fraca:

    Questo 3.2. Observe a figura 18 e explique cada ligao do objeto denominado TRABALHA-EM

    Questo 3.3. Observe a figura 18 e explique porque a linha que circula a entidade DEPENDENTE dupla:

    Questo 3.4. Observe a figura 18 e indique a qual entidade pertence o supervisor:

  • 30

    UNIDADE IV.UNIDADE IV. MER-EMER-E

    Com o surgimento de novas aplicaes, surgiu tambm a necessidade de novas semnticas para a modelagem de informaes mais complexas. O modelo Entidade Relacionamento Estendido (ERE) visa fornecer a semntica para permitir a representao de informaes complexas. importante frisar que embora o modelo ERE trate classes e subclasses, ele no possui a mesma semntica de um modelo orientado a objetos.O modelo ERE engloba todos os conceitos do modelo ER mais os conceitos de subclasse, superclasse, generalizao e especializao e o conceito de herana de atributos.

    IV.1. SUBCLASSES, SUPERCLASSES E ESPECIALIZAES

    O primeiro conceito do modelo ERE que ser abordado o de subclasse de um tipo entidade. Como visto anteriormente, um tipo entidade utilizado para representar um conjunto de entidades do mesmo tipo. Em muitos casos, um tipo entidade possui diversos subgrupos adicionais de entidades que so significativas e precisam ser representadas explicitamente devido ao seu significado aplicao de banco de dados. Leve em considerao o seguinte exemplo:Para um banco de dados de uma empresa temos o tipo entidade empregado, o qual possui as seguintes caractersticas: nome, rg, cic, nmero funcional, endereo completo (rua, nmero, complemento, cep, bairro, cidade), sexo, data de nascimento e telefone (ddd e nmero); Caso o(a) funcionrio(a) seja um(a) engenheiro(a), ento deseja-se armazenar as seguintes informaes: nmero do CREA e especialidade (Civil, Mecnico, Eletro/Eletrnico); caso o(a) funcionrio(a) seja um(a) secretrio(a), ento deseja-se armazenar as seguinte informaes: qualificao (bi ou tri lngue) e os idiomas no qual possui fluncia verbal e escrita.Se as informaes nmero do CREA, especialidade, tipo e idiomas forem representadas diretamente no tipo entidade empregado estaremos representando informaes de um conjunto limitados de entidades empregado para os todos os funcionrios da empresa. Neste caso, podemos criar duas subclasses do tipo entidade empregado: engenheiro e secretria, as quais iro conter as informaes acima citadas. Alm disto, engenheiro e secretria podem ter relacionamentos especficos.Uma entidade no pode existir meramente como componente de uma subclasse. Antes de ser componente de uma subclasse, uma entidade deve ser componente de uma superclasse. Isto leva ao conceito de herana de atributos; ou seja, a subclasse herda todos os atributos da superclasse. Isto porque a entidade de subclasse representa as mesmas caractersticas de uma mesma entidade da superclasse. Uma subclasse pode herdar atributos de superclasses diferentes.A Figura 22 mostra a representao diagramtica do exemplo acima.

  • 31

    Figura 22 - Representao de Superclasse e Subclasses

    IV.2. ESPECIALIZAO

    Especializao o processo de definio de um conjunto de classes de um tipo entidade; este tipo entidade chamado de superclasse da especializao. O conjunto de subclasses formado baseado em alguma caracterstica que distinga as entidades entre si. No exemplo da Figura 22, temos uma especializao que podemos chamar de funo. Veja agora no exemplo da Figura23, onde temos a entidade empregado e duas especializaes.

    Figura 23 - Duas Especializaes para Empregado: Funo e Categoria Salarial

    Como visto anteriormente, uma subclasse pode ter relacionamentos especficos com outras entidades ou com a prpria entidade que a sua superclasse. Veja o exemplo da Figura 24.

  • 32

    Figura 24 - Relacionamentos Entre Subclasses e Entidades

    O processo de especializao nos permite: Definir um conjunto de subclasses de um tipo entidade; Associar atributos especficos adicionais para cada subclasse; Estabelecer tipos relacionamentos especficos entre subclasses e outros tipos entidades.

    IV.3. GENERALIZAO

    A generalizao pode ser pensada como um processo de abstrao reverso ao da especializao, no qual so suprimidas as diferenas entre diversos tipos entidades, identificando suas caractersticas comuns e generalizando estas entidades em uma superclasse.

    Figura 25 - Tipos Entidades Engenheiro e Secretria

    Figura 26 - Generalizao Empregado para os Tipos Entidades Engenheiro e Secretria

    importante destacar que existe diferena semntica entre a especializao e a generalizao. Na especializao, podemos notar que a ligao entre a superclasse e as subclasses feita atravs de um trao simples, indicando participao parcial por parte da superclasse. Analisando o exemplo da Figura 22, observado que um empregado no obrigado a ser um engenheiro ou uma secretria. Na generalizao, podemos notar que a ligao entre a superclasse e as subclasses feita atravs de um trao duplo, indicando participao total por parte da superclasse. Analisando o exemplo da Figura 26 , observado que um empregado obrigado a ser um engenheiro ou uma secretria.A letra d dentro do crculo que especifica uma especializao ou uma generalizao significa disjuno. Uma disjuno em uma especializao ou generalizao indica que uma entidade do tipo entidade que representa a superclasse pode assumir apenas um papel dentro da mesma.

  • 33

    Analisando o exemplo da Figura 23. Temos duas especializaes para a superclasse Empregado, as quais so restringidas atravs de uma disjuno. Neste caso, um empregado pode ser um engenheiro ou uma secretria e o mesmo pode ser horista ou mensalista.Alm da disjuno podemos ter um overlap, representado pela letra o. No caso do overlap, uma entidade de uma superclasse pode ser membro de mais que uma subclasse em uma especializao ou generalizao. Analise a generalizao no exemplo da Figura 27. Suponha que uma pea fabricada em uma tornearia pode ser manufaturada ou torneada ou ainda, pode ter sido manufaturada e torneada.

    Figura 27 - Uma Generalizao com Overlap

    IV.4. LATTICE OU MLTIPLA HERANA

    Uma subclasse pode ser definida atravs de um lattice, ou mltipla herana, ou seja, ela pode ter diversas superclasses, herdando caractersticas de todas. Leve em considerao o seguinte exemplo:Uma construtora possui diversos funcionrios, os quais podem ser engenheiros ou secretrias. Um funcionrio pode tambm ser assalariado ou horista. Todo gerente de departamento da construtora deve ser um engenheiro e assalariado.O modelo lgico da expresso acima tem o seguinte formato:

    Figura 28 - Um Lattice com a Subclasse Gerente Compartilhada

    Neste caso ento, um gerente ser um funcionrio que alm de possuir as caractersticas prprias de Gerente, herdar as caractersticas de Engenheiro e de Mensalista.

  • 34

    IV.5. ATIVIDADES

    Questo 4.1. Desenhe um diagrama contendo todas as operaes estendidas:

    Questo 4.2. D um exemplo de relao de disjuno:

    Questo 4.3. D um exemplo de relao de overlap:

  • 35

    UNIDADE V.UNIDADE V. MODELO RELACIONALMODELO RELACIONAL

    O modelo de dados relacional um dos mais difundidos no mundo e, apesar de nos ltimos anos este ter sofrido diversas atualizaes, ainda considerado um padro para a maioria das aplicaes em BD.Neste modelo as estruturas so tabelas, tambm chamadas de relaes. Alguns dos principais conceitos que sero estudados referem-se s restries de integridade que so as chaves, as restries de domnio, de entidade e referencial, e as operaes que so a lgebra relacional. Um banco de dados estruturado de acordo com o modelo relacional corresponde a uma coleo de relaes. Informalmente, uma relao uma tabela na qual cada linha expressa uma coleo de dados relacionados, cujos valores podem ser interpretados como um fato que descreve a ocorrncia de uma entidade ou de um relacionamento.As linhas de uma relao, (tabela), so chamadas de tuplas e os cabealhos das colunas so chamados de atributos. O conjunto de todos os valores possveis de aparecer em cada coluna chamado de domnio, ou seja, o domnio o tipo do dado que pode ser inserido em determinado atributo.

    Figura 29 Exemplo de modelo relacional

    Expresso que representa o esquema da relao: R(A1,A2,...,An) onde:R o nome de uma relao;Ai o nome de um atributo que representa um papel de um domnio D em R dom (Ai);n o grau da relao.Uma relao r(R) um conjunto de n-tuplas r = {t1, t2,..., tn}, onde cada n-tupla t uma lista ordenada de n valores t= v1, v2,...,vn , sendo cada vi um elemento do dom(Ai) ou um valor especial nulo.Caractersticas de uma relao

    V.1. PRINCIPAIS CARACTERSTICAS DAS RELAES

    As tuplas de uma relao no so ordenadas. Numa relao as tuplas sero armazenadas na ordem em que estas forem sendo inseridas no BD, sem uma ordenao, por exemplo, levando em conta os valores de algum atributo.Uma tupla uma lista ordenada de valores, portanto, a ordem dos valores em uma tupla e, conseqentemente, dos atributos na definio de um esquema de relao importante.O valor de cada atributo em uma tupla atmico, ou seja, o valor de um atributo no pode ser composto.Um esquema de relao pode ser interpretado como uma declarao, ou seja, uma tupla satisfaz ou no uma relao. Uma tupla satisfaz uma relao, quando os valores de seus atributos pertencem aos seus domnios, respeitando-se a ordem em que aparece cada atributo.

  • 36

    V.2. ESQUEMA E RESTRIES DE INTEGRIDADE

    Um esquema (schema) de BD relacional S define um conjunto de esquemas de relao R = {R1, R2,...,Rn} e um conjunto de restries de integridade I. Portanto S=(R,I).Uma instncia B de S um conjunto de relaes B = {r1, r2,...rn}, tal que, cada ri uma instncia de Ri e satisfazem as restries de integridade especificadas em I.No modelo relacional, as restries de integridade definem regras que se referem manuteno da integridade dos dados no BD. Um dado ntegro aquele que condiz com a realidade. As restries so as seguintes:

    RESTRIES DE DOMNIO

    Especificam que o valor de cada atributo A de uma relao deve ser um valor atmico do dom(A), ou seja, uma vez definido o tipo de dado de determinado atributo, somente valores deste mesmo tipo podero ser atribudos ao mesmo.

    RESTRIES DE CHAVES

    Um conjunto de atributos SK de R, tal que, para duas tuplas quaisquer t1 e t2 de r(R), t1[SK] # t2[SK] (t1 e t2 identificam de maneira nica) chamado de superchave de R. Em outras palavras, uma superchave um conjunto formado por atributos que identificam de forma nica uma tupla.Uma chave de R uma superchave com a propriedade adicional de que nenhum de seus subconjuntos tambm seja uma superchave de R. Em outras palavras, chave o conjunto mnimo de atributos para identificar de forma nica uma tupla numa tabela.Em geral, um esquema de relao R pode ter mais de uma chave, cada uma dessas chaves chamada de chave candidata. Dentre as chaves candidatas, uma delas indicada como chave primria (aquela que ser escolhida para identificar unicamente uma tupla), as demais constituem as chaves alternativas.Para uma melhor compreenso destes conceitos, observe o exemplo a seguir:Seja uma relao contendo os dados de estudantes, contendo seu nmero de matrcula, seu RG e seu CPF, dentre outros.Sabe-se que estes trs atributos so nicos para cada estudante, sendo assim os trs poderiam identificar unicamente um determinado estudante, portanto poderiam ser considerados superchaves.Alm disso, o conjunto formado por dois dos trs atributos, ou mesmo o conjunto formado pelos trs atributos, tambm no se repete e neste caso tambm seriam superchaves.Porm, neste ltimo caso de um conjunto dos atributos, este no poderia ser considerado chave, pois no o mnimo. Uma chave neste exemplo poderia ser qualquer um dos trs atributos isolado.Supondo-se que a matrcula seja escolhida dentre as trs possibilidades, para identificar de forma nica um estudante, este atributo a chave primria. Os demais, que no foram escolhidos, so chaves alternativas.

    RESTRIES DE INTEGRIDADE DE ENTIDADE

    Nenhum componente de uma chave primria pode ser nulo. O valor nulo um valor especial, que indica que determinada tupla no possui determinado atributo. diferente do valor zero, por exemplo.

    RESTRIES DE INTEGRIDADE REFERENCIAL (RIR)

    A restrio de integridade referencial envolve duas relaes distintas, ou dois atributos distintos de uma relao. Por exemplo, supondo um relacionamento entre duas entidades Estudantes e

  • 37

    Cursos, onde estudantes esto ligados a um curso, podemos supor que haja na relao dos estudantes um atributo contendo o cdigo do seu curso. A restrio de integridade referencial define que este atributo cdigo do curso deve corresponder ao valor da chave primria que identifica o curso realizado pelo estudante, ou caso no esteja ligado a um curso, este valor seja nulo. No possvel este atributo conter algum valor diferente dos que esto na chave primria da relao dos cursos.Formalmente, seja FK um conjunto de atributos de um esquema de relao R1 definido sobre os mesmos domnios dos atributos da chave primria PK de um outro esquema de relao R2. Ento, para qualquer tupla t1 de R1 uma das seguintes situaes ocorre:t1[FK] = t2[PK], onde t2 alguma tupla de R2, ou t1[FK] nulo.A restrio de integridade referencial entre R1 e R2 pode ser expressa pela notao R1[FK] R2[FK], onde PK a chave primria de R2 e FK a chave estrangeira (foreign) de R1.A operao de atualizao de dados, que esto envolvidos numa restrio de integridade referencial (RIR), uma tarefa que envolve certo cuidado, uma vez que esta restrio deve ser mantida aps a atualizao. Por exemplo, no caso dos Estudantes e Cursos, um curso que possusse alunos inscritos no poderia ser simplesmente removido da relao de cursos, sem que alguma atitude fosse tomada no atributo que se refere ao seu cdigo, dentro da relao dos estudantes.Associada a uma RIR: R1[x] R2[y] possvel definir uma opo de atualizao de valores da chave primria. So trs as opes:Operaes sobre relaes:

    Tornar nulo o campo referente na chave estrangeira.

    Propagar a remoo, ou seja, remover todas as referncias na tabela que contm a chave estrangeira. Atitude bastante drstica, geralmente utilizada em tabelas que so entidades fracas no modelo E/R.

    Bloqueio da remoo. No permite excluir itens da chave primria que contm referncias na tabela da chave estrangeira. Bastante utilizada.De acordo com o modelo relacional, as operaes sobre um BD relacional podem ser classificadas em:Operaes de recuperao ou consulta, que no alteram os valores no BD; eOperaes de atualizao, sendo inseres, alteraes e remoes de dados no BD.Restries de integridade no podem ser violadas pelas operaes de atualizao. Atualizaes podem ser propagadas automaticamente para manter restries de integridade, por exemplo, no caso da remoo de tuplas que violem a restrio de integridade referencial.

  • 38

    V.3. ATIVIDADES

    Questo 5.1. Desenhe o modelo Relacional para o seguinte cenrio:a) A loja vende produtos dos mais variados tipos, que so identificados por um cdigo nico; b) Cada produto possui descrio, preo de custo, preo de venda, quantidade em estoque; c) Cada produto comprado apenas de um fornecedor, mas o mesmo fornecedor pode vender vrios produtos para a loja; d) Os clientes da loja possuem um cadastro que identificam na hora da venda. Se o cliente for especial, este ter direito a optar por diversas formas de pagamento, ou a ter um desconto vista; e) Os funcionrios da loja, alm de um salrio fixo, recebem comisso sobre as vendas realizadas por eles. f) O gerente da loja quer saber quanto foi vendido a cada dia, quais so os produtos que esto com pouco estoque e qual a forma de pagamento mais utilizada.

  • 39

    UNIDADE VI.UNIDADE VI. LGEBRA RELACIONALLGEBRA RELACIONAL

    A lgebra relacional uma linguagem de consulta procedural (o usurio descreve os passos a serem executados) e formal a qual a tcnica utilizada fundamental para a extrao de dados de um banco de dados, alm de ser um conjunto de operaes, os quais utilizam como recurso de entrada uma ou mais relaes, produzindo ento, uma nova relao. Neste contexto uma seqncia de operaes forma uma expresso em lgebra relacional cujo resultado tambm produzir uma relao (uma consulta). Na lgebra relacional existem os operadores tradicionais e os operadores relacionais, onde cada um apresenta a sua funo e uma representao na construo de consultas. Para estudarmos as operaes de lgebra relacional, apresenta-se abaixo um modelo de banco de dados elaborado a partir da ferramenta dbDesigner:

    Figura 30 Exemplo de modelo ER criado com dbDesigner

    A seguir visualizaremos as respectivas tabelas populadas, as quais serviro de modelo para o aprendizado de lgebra relacional.

  • 40

    VI.1.1.Operadores

    Unio (union) uma operao binria que cria uma relao partindo de duas outras relaes, estabelecendo assim, a unio de todas as tuplas dessa nova relao. Seu smbolo : u.Exemplo:r = conjunto de tuplas de clientes de petrpoliss = conjunto de tuplas dos clientes que alugaram o filme f2c = r u s

    Figura 32 Exemplo da operao Unio

    Interseco (intersection) uma operao binria que cria uma relao partindo de duas outras relaes, estabelecendo assim a interseco das duas, gerando uma nova relao as quais estaro presentes apenas os dados pertencentes s duas condies pr-estabelecidas. Seu smbolo : .c = r s

    Figura 33 Exemplo da operao Interseco

    Diferena (difference) uma operao que cria uma relao partindo de duas outras relaes, o qual resultar em uma nova relao que contenha todas as tuplas que pertenam primeira relao e no pertena segunda. Seu smbolo : -.c = r s

    Figura 34 Exemplo da operao Diferena

    Produto cartesiano (product)Operao binria que permite a combinao de informaes de duas relaes quaisquer, assim a relao resultante conter todas as tuplas da primeira relao relacionadas s da segunda relao. Seu smbolo : .Exemplo:k = conjunto de todos os cdigos dos moradores de petrpolisl = conjunto de todos os cdigos de filmes de 2001c = k l

    Figura 35 Exemplo da operao Produto cartesiano

  • 41

    Seleo (select)Operao unria, pois atua sobre uma nica relao, produzindo um subconjunto apenas com os elementos especificados na condio. conhecida tambm como uma operao que filtra linhas de uma tabela, atravs da construo de um subconjunto horizontal de uma relao. Seu smbolo : .Exemplo:cidade = petrpolis (clientes)

    Figura 36 Exemplo da operao Seleo

    Projeo (projection)Esta operao tambm unria. Produz um subconjunto com apenas as colunas escolhidas na condio especificada, filtrando colunas os quais se coloca na operao o nome das colunas desejadas para a criao do novo conjunto. este tipo de relao vertical e o seu smbolo :Exemplo: nome_f, ano (filmes)

  • 42

    Figura 37 Exemplo da operao Projeo

    Diviso (division)Operao binria, a qual resultar em uma tabela que conter apenas os elementos da primeira tabela que se relacionem com todos os elementos da segunda tabela. Seu smbolo : .Exemplo: #c (locao ( #f (filmes))

    Figura 38 Exemplo da operao Diviso

    Neste exemplo utilizamos tambm a operao projeo com seu respectivo smbolo j explicado anteriormente.

    Juno (join)Esta operao tem como objetivo unir duas tabelas, as quais possuem um atributo em comum. este tipo de operao muito utilizado quando tratamos de relacionamentos com chaves estrangeiras, em que realizada uma seleo a partir dos atributos de um relacionamento sobre um produto cartesiano das tabelas. seu smbolo : |x|.

  • 43

    clientes|x|locao = clientes.#c = locao.#c (clientes locao)Exemplo: nome, idade ( #f = f2 (clientes |x