1 Desenvolvimento de uma base de dados Realidade Modelo conceptual (e.g. Modelo Entidade-Associação) Modelo lógico (e.g. Modelo Relacional)

Slides:



Advertisements
Apresentações semelhantes
T I  C Módulo 2 Base de dados
Advertisements

Base de Dados para a Gestão de Informação de Natureza Pedagógica
Banco de Dados Prof. Antonio.
DESENHO de BASE de DADOS RELACIONAL
Evolução dos SGBD’s.
Normalização.
Modelo Relacional.
SQL Structured Query Language (continuação)
Evolução dos SGBD’s (2ª Parte).
SQL Structured Query Language (continuação)
MODELO RELACIONAL Transparências baseadas no capítulo 3 do livro de KORTH e SILBERCHATZ e capítulo 7 do livro de ELMASRI e NAVATHE Juliana Amaral e Rodrigo.
Funcionalidades de um SGBD
Sistemas de Informação Redes de Computadores
Maurício Edgar Stivanello
Sistema Gerenciador de Banco de Dados SGBD
Introdução a Bancos de Dados
Operadores Especiais da SQL
(Dependência Funcional e Normalização)
Banco de Dados Aplicado ao Desenvolvimento de Software
Modelo Relacional Uma base de dados é Uma relação é
Prof. Alfredo Parteli Gomes
SQL Server 2012 Introdução a Modelagem de Dados
1 Fundamentos de SIG. - Sistemas de Informação
Operações espaciais 3 ○ operações elementares
UML – Diagrama de Classes
Design Patterns / Acesso ao banco de dados (java.sql)
Tuning Lílian Simão Oliveira.
Banco de Dados Aplicado ao Desenvolvimento de Software
INTRODUÇÃO ÁS BASES DE DADOS
Ano letivo CURSO EFA DE TÉCNICO DE INFORMÁTICA E SISTEMAS Docente: Ana Batista EDUCAÇÃO E FORMAÇÃO DE ADULTOS Curso EFA – Sec. Turma C
Desenvolvendo um script SQL
Conceitos Programas Programação Linguagens de Programação SQL.
Análise de Sistemas de Informação
Baseado no material do Professor Raul Paradeda
REVISÃO Comandos SQL - DML SELECT * FROM ?.
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
Linguagem de Manipulação de Dados. 2 Conteúdos Introdução ao SQL Comando SELECT – Extracção de Dados  Pesquisas Simples  Restrições na pesquisa de dados.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
ANÁLISE DE SISTEMAS 1Trabalho elaborado por Alexandra.
Sistemas de Informação (SI)
AULA DE DÚVIDAS 9 de Abril de Especialização  Simplifica-se quando:  especialização é disjunta e  especialização é total e  não há relações.
©Silberschatz, Korth and Sudarshan (Modificado)3.1.1Database System Concepts Capítulo 3: Modelo Relacional Estrutura das Bases de Dados Relacionais Redução.
1 24/4/ :29 FMU – 1. Semestre – Tecnologia – Analise e Desenvolvimento de Sistemas Professor: Eduardo Silvestri Aluno:Clóvis de Oliveira- RA
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
Operações para entrada de dados –Compilação de dados codificação de dados geográficos de uma forma conveniente para o sistema; incluem a digitalização,
AOBD 07/08 Mini-Projecto 2 Soluções. 1) Considere que existem três relações R1=(A,B,C), R2=(C,D) e R3=(D,E) com chaves primárias A, C e D, respectivamente.
1 Desenvolvimento de uma base de dados Realidade Modelo conceptual (e.g. Modelo Entidade-Associação) Modelo lógico (e.g. Modelo Relacional)
Desenvolvimento de uma base de dados
Operações de análise espacial: derivação Principais tipos de operações sobre estruturas de dados vectoriais que originam novos objectos espaciais.
Bases de dados relacionais (3ª aula)
Operações espaciais Modelação Cartográfica. Dados de entrada e de saída Dados de entrada Operações Dados intermédios Dados de saída.
Graça Abrantes Operações espaciais (5ª aula) ○ operações elementares ○ operações cujo resultado é um valor lógico ○ operações para derivação de informação.
Modelo de base de dados relacional
Bases de dados: cruzamento de tabelas
1 Structured Query Language (SQL) 4 SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.
Modelo de base de dados relacional
1 Fundamentos de SIG (2ª aula). - Sistemas de Informação
Arnaldo Rocha1995 BANCO DE DADOS Modelo Relacional.
Aula 09: Comando SELECT: Ligações entre tabelas e Subconsultas
UCSal – Bacharelado em Informática
Linguagem de definição de dados - SQL
Bases de dados relacionais
BD SQL (Insert, Update, Delete) e Select Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Gestão de Bases de Dados. Conceitos Básicos Necessidade das bases de dados  Permitem guardar dados dos mais variados tipos;  Permitem um rápido e fácil.
Análise e Design de Software Site:
 O Modelo E-R (Entidade-Relação)
Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)
Gestão da Tecnologia da Informação Fundamentos de Sistemas de Banco de Dados Faculdade de Tecnologia Senac Jaraguá do Sul.
Universidade de Passo Fundo Tecnologia em Sistemas de Informação TSI109- Fundamentos de Banco de Dados (Restrições de Integridade) Prof. Alexandre Tagliari.
Transcrição da apresentação:

1 Desenvolvimento de uma base de dados Realidade Modelo conceptual (e.g. Modelo Entidade-Associação) Modelo lógico (e.g. Modelo Relacional)

2 Modelos conceptuais de tipo E-A 4 Os modelos de tipo E-A são compostos por entidades e associações. 4 As entidades representam objectos reais que possuem uma descrição que é determinada pelos problemas que se pretendem resolver por meio da Base de Dados. 4 As associações representam relacionamentos relevantes entre entidades.

3 Tipo de entidades e atributos 4 As entidades que possuem uma descrição comum são representadas por um tipo de entidade, o qual é caracterizado por um conjunto de atributos. 4 Os valores que tomam cada um dos atributos de um tipo de entidade permitem descrever e distinguir entre si as entidades que pertencem a um mesmo tipo de entidade.

4 Exemplo Num sistema de informação geográfica, um tipo de entidade pode ser constituído por polígonos (objectos espaciais). Cada polígono pode ter um conjunto de atributos (e.g. área, perímetro,...). Um segundo tipo de entidade poderia ser constituído por unidades territoriais (e.g. concelhos), tendo atributos (e.g. código, designação). Polígonos e concelhos podem estar relacionados.

5 Diagrama do modelo conceptual: exemplo concelhoempresa representa actua polígono

6 Atributos de um tipo de Associação Um tipo de associação pode possuir atributos que permitam descrever as características próprias de cada associação. –por exemplo, cada empresa tem um certo número de trabalhadores em cada concelho.

7 Diagrama do modelo conceptual concelhoempresa representa actua polígono poli-ID área perímetro código designação número trab. NIF nome

8 Grau de um tipo de associação 4 Um tipo de associação caracteriza-se pelo número de tipos de entidade que envolve, podendo ser unária, binária (o caso mais frequente), ternária,...

9 Multiplicidade (ou cardinalidade) de um tipo de associação Um tipo de associação binária pode ser: –de um para um (1:1) quando cada entidade só pode ocorrer numa única associação desse tipo; –de um para muitos (1:n) quando cada entidade de um tipo só pode ocorrer numa associação, mas as entidades do outro tipo podem ocorrer em mais do que uma associação desse tipo; –de muitos para muitos (n:n) quando não existe nenhuma restrição ao número de ocorrências de cada entidade em associações desse tipo.

10 Multiplicidade (continuação) A multiplicidade de um tipo de associação binária é indicada por 4 números: número mínimo e máximo de entidades que ocorrem numa associação, em cada sentido. A multiplicidade é frequentemente 0,1 ou 1,1 ou 0,n ou 1,n, mas pode ser diferente (2,2 ou 2,n, por exemplo).

11 Exemplo concelhoempresa representa actua polígono poli-ID área perímetro código designação número trab. NIF nome 1:n 1:1 1:n n:n

12 Criação de um modelo conceptual de dados 1. Identificar tipos de entidade e seus atributos 2. Identificar tipos de associação e seus atributos 3. Definir multiplicidades dos tipos de associação

13 Modelo lógico: SGBD relacional 4 Baseiam-se num conjunto de conceitos teóricos apresentados em 1970 por E. F. Codd. 4 Vantagens dos SGBD relacionais: –simplicidade dos conceitos que utilizam –existência de definições formais para os conceitos permitiram uma rápida divulgação permitiram a adesão de diversos fabricantes de software; –adequação à representação de muitos dos aspectos que constituem a realidade

14 Relação 4 Nas bases de dados relacionais a estrutura fundamental é a relação. 4 Uma relação é definida por um esquema e por uma tabela. 4 Um esquema é composto: –pelo nome da relação –pelos nomes dos atributos

15 1. Esquema Exemplos: Polígono(poli-ID, área, perímetro) Concelho(código,designação)

16 Atributos 4 Um atributo A i toma valores num conjunto D i chamado domínio do atributo. –O domínio determina o tipo de valores que o atributo pode tomar. 4 Dado U={A 1, A 2,...,A n }, uma relação R sobre U é um subconjunto de D 1 x D 2 x... x D n. 4 A cada tuplo deste produto cartesiano dá-se o nome de instância da relação R.

17 2. Tabela 4 O conjunto das instâncias da relação R constituí uma tabela em que - as linhas são as instâncias (ou registos) - as colunas são os atributos (ou campos)

18 Observações 4 os valores de cada atributo pertencem a um mesmo domínio; 4 o valor de um atributo é sempre atómico; –isto é, numa tabela, no cruzamento de uma linha com uma coluna só pode existir um valor de atributo; 4 numa relação não podem existir instâncias iguais; 4 a ordem porque se encontram as instâncias de uma relação e os seus atributos é irrelevante; 4 podem existir instâncias sem valores em alguns dos seus atributos; neste caso o atributo diz-se opcional e o seu valor é null; 4 os nomes (ou identificadores) dos atributos que constituem o esquema de uma relação são únicos nessa relação.

19 Chave(s) de uma relação 4 Um conjunto de atributos que tomam valores diferentes para cada instância da relação é uma chave da relação. –cada instância pode ser identificada pelo valor da chave: o valor da chave nunca se repete. 4 Uma chave pode ser composta por um ou mais atributos. 4 Atributo primário: pertence à chave 4 Atributo não primário: não pertence à chave

20 Chave primária e chave estrangeira 4 Nos SGBD relacionais, para representar as associações existentes entre as várias entidades utilizam-se esquemas de relações em que figuram atributos comuns. 4 Chave primária de uma relação é um subcon- junto mínimo de atributos cujos valores permitem identificar de modo único cada uma das instâncias dessa relação. 4 Uma chave estrangeira de uma relação é um conjunto de atributos que é chave primária de outra relação.

21 Passagem do modelo E-A para relacional 4 Um modelo de tipo E-A descreve de uma forma natural e simples a realidade. 4 Os modelos deste tipo são suficientemente flexíveis para poderem ser utilizados eficazmente numa fase em que a estruturação dos dados é ainda confusa. 4 A estas vantagens pode ainda adicionar-se a facilidade com que é possível efectuar a sua passagem para um SGBD relacional, bem formalizado e comercializado por diversos fornecedores de software.

22 Regras para transformação de um modelo E-A num esquema relacional (1) Cada tipo de entidades do modelo E-A traduz-se por uma relação em que a chave primária e os atributos provêm do tipo de entidade.

23 Regras para transformação de um modelo E-A num esquema relacional (2) Um tipo de associação de 1:n (um para muitos) entre dois tipos de entidades E i e E j que tenha uma multiplicidade igual a 0,1 ou 1,1 para um tipo de entidade E i traduz-se por uma chave estrangeira na relação R que é tradução de E j. EjEj EiEi 1,n 1,1 RjRj RiRi

24 Regras para transformação de um modelo E-A num esquema relacional (2') Um tipo de associação de 1:1 (um para um) entre dois tipos de entidades E i e E j é tratado como um caso especial do tipo de associação 1:n –traduz-se por uma chave estrangeira na relação que é tradução de E j ou de E i ; –se apenas para um destes tipos entidades a multiplicidade for 1,1 (sendo para a outra 0,1) dá-se preferência à relação que traduz este tipo de entidade, –no caso contrário é indiferente qual a relação que é escolhida.

25 Regras para transformação de um modelo E-A num esquema relacional (3) Um tipo de associação n:n (muitos para muitos) traduz-se por uma relação R em que a chave primária inclui as chaves estrangeiras que são chave primária dos tipos de entidade que a constituem; os outros atributos são a tradução dos tipos de atributos da associação (se esta possuir algum). EjEj EiEi 1,n RjRj RiRi R

26 Nota: se nas associações n:n as chaves estrangeiras não são suficientes para formar a chave primária da relação R, na constituição desta devem também ser utilizados outros atributos de forma a ser obtida uma chave primária.

27 Consistência, redundância e formas normais Para evitar redundâncias e para facilitar a manutenção da consistência dos dados na base de dados, as tabelas devem verificar algumas propriedades. As duas primeiras formas normais são obrigatoriamente respeitadas por uma relação. A terceira forma normal assegura a não existência de um certo tipo de redundâncias na base de dados.

28 Modelo relacional: 1ª forma normal Todos os atributos tomam valor único. Exemplo: Em vez de Fazer: Tejoprincipalmarítima, terrestre Mondegoprincipalmarítima Tejoprincipalsim Mondegoprincipalsimnão

29 Modelo relacional - Dependências funcionais Dada um relação R definida sobre um conjunto de atributos U={A 1, A 2, …, A n }, diz-se que o atributo A k depende funcionalmente do atributo A i (A i  A k ) se e só se sempre que duas instâncias tiverem o mesmo valor em A i tiverem também o mesmo valor em A k.

30 Modelo relacional: 2ª forma normal A relação tem que estar na 1ª forma normal Todos os atributos não primários são funcionalmente dependentes da chave primária.

31 2ª forma normal As tabelas num sistema de informação geográfica devem estar na segunda forma normal. No entanto, essa condição não é suficiente para garantir que as bases de dados não apresentam redundâncias indesejáveis.

32 Exemplo: Suponha que tem que estruturar um tema relativo a árvores notáveis numa estrutura de dados vectoriais de um sistema de informação geográfica (SIG). Para cada árvore pretende registar o nome comum, o nome científico, a família, a altura da árvore e o diâmetro do tronco (DAP). Existe um milhar de árvores notáveis na região de interesse, havendo várias espécies representadas por diversos indivíduos. Como estruturaria essa informação no SIG?

33 Modelo relacional: 3ª forma normal A tabela tem que estar na 2ª forma normal Não existem dependências funcionais entre atributos que não são chave primária

34 Normalização A passagem de uma forma normal para outra pode implicar a decomposição de uma tabela num conjunto de tabelas.

35 Exemplo: 2ª FN 3ª FN Exemplo: dada a tabela na 2ª forma normal Fazer: e 25RC11802Bragança 26RC11808Vinhais 25RC RC11808 RC11802Bragança RC11808Vinhais

36 Tabela normalizada (3ª forma normal) Numa tabela que verifica as primeiras três formas normais, qualquer atributo que não pertence à chave primária depende completamente e exclusivamente da totalidade dessa chave.

37 Por que é que a tabela abaixo não está na 3ª forma normal?

38 Structured Query Language (SQL) 4 SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.

39 A instrução SELECT 4 As consultas a uma base de dados relacional fazem-se em SQL recorrendo à instrução SELECT. Esta instrução permite criar conjuntos de registos de uma ou mais tabelas da base de dados seleccionados segundo diversos critérios.

40 A cláusula WHERE: selecção de linhas SELECT atributo1, atributo2,.... (ou *) FROM tabela1, tabela 2,... WHERE condição; onde o argumento de WHERE é uma condição que os registos seleccionados verificam; podem ser utilizados operadores relacionais (, >=, =, <>), operadores lógicos (NOT, AND, OR) e os operadores IN, IS, BETWEEN e LIKE.

41 A cláusula WHERE (exemplos) 4 select * from conc where area > select * from conc where concelho like ‘A%’ 4 select * from rios where "TIPO" = 'Principal' or "DESIGNACAO" in ( 'Fronteira terrestre', 'Fronteira marítima' )

42 Cruzamento de tabelas (“join”) 4 A cláusula FROM especifica o(s) nome(s) da(s) tabela(s) em que se encontram os registos a seleccionar. 4 A instrução SELECT produz o produto cartesiano das tabelas especificadas, isto é, cada registo do resultado é composto por um registo de cada uma dessas tabelas. 4 Num cruzamento (join) de tabelas a cláusula WHERE é utilizada para seleccionar no resultado do produto cartesiano os tuplos que correspondem a registos em que o valor de uma chave estrangeira é igual ao valor de uma chave primária.

43 SELECT * FROM conc,ValorAcrescentado WHERE DTCC=codigo; Exemplo (cruzamento ou join): onde codigo é a chave primária da tabela ValorAcrescentado e DTCC é a correspondente chave estrangeira na tabela conc.

44 A cláusula GROUP BY e as funções de agregação 4 As funções de agregação aplicam-se a selecções de registos. Podem ser utilizadas as funções SUM, AVG, MAX, MIN e COUNT,... 4 A utilização de funções de agregação é feita frequentemente em conjunto com a cláusula GROUP BY. Esta especifica os conjuntos de registos seleccionados que são objecto da(s) função(ões). 4 Quando é utilizada a cláusula GROUP BY, só podem ser indicados na cláusula SELECT os atributos incluídos na cláusula GROUP BY (para além daqueles que são argumento de uma função).

45 GROUP BY Group by indica o atributo que define o agrupamento Select atrib1 From tabela_entrada Group by atrib1 Se se quiser também incluir no resultado da operação uma função f dos valores do atributo atrib2, aplicada a cada grupo definido da forma acima: Select atrib1, f(atrib2) From tabela_entrada Group by atrib1

46 Dissolve vs GROUP BY 4 Num SIG, a operação de “dissolução” de objectos espaciais (dissolve) corresponde a uma pesquisa com cláusula GROUP BY na tabela do tema que se quer “dissolver”.

47 SELECT DT as conc.DT, area AS SUM(conc.area) FROM conc GROUP BY conc.DT;

48 Resultado da operação de dissolução

49 Outro exemplo: Suponha que pretende estruturar para uma determinada região um tema relativo a culturas agrícolas numa estrutura de dados vectoriais de um sistema de informação geográfica (SIG). Para cada parcela de terreno ocupada por uma determinada cultura pretende-se registar (i) o nome comum da espécie, (ii) o nome científico, (iii) o rendimento médio da cultura na região, (iv) a data da sementeira ou plantação e (v) a área da parcela. A região de interesse é um concelho rural do norte de Portugal, com um elevado índice de desagregação das parcelas. 1. Que estrutura de dados deve usar? 2. Explique porque é vantajoso usar duas tabelas na base de dados do sistema de informação geográfica, uma referente a objectos espaciais, outra com informação não espacial. 3. Como deve proceder para – através de pesquisas à base de dados que estruturou – obter informação, para cada tipo de cultura, sobre a primeira data de sementeira/plantação na região?