Tecnologias de Linguagens para Banco de Dados I Marcelo Gumercino Costa TLBD Revisão O que são dados????? Idade Rua Dois N° 29 Endereço 03 João da Silva 32 Telefone Avenida Hum Dois Nome Avenida Maria dos Santos 02 TLBD Revisão O que é um banco de dados??? Nome Endereço N° João da Silva Rua Dois 02 Maria dos Santos Avenida Hum 03 Idade 29 32 Telefone TLBD Banco de Dados: Conjunto de dados, organizados por categoriais, de modo a facilitar a pesquisa, comparação e atualização das informações; Base de Dados. Programa para uso e controle de um banco de dados; TLBD Industria hipotética Vendas: esta função concentra as atividades da industria relativas ao contato com os clientes, como fornecimento de cotações de preços, vendas e informações sobre disponibilidade. Produção: Esta função concentra as atividades da indústria relativas à produção propriamente dita, como planejamento da produção e controle do que foi produzido. Compras: Esta função concentra as atividades da indústria relativas à aquisição dos insumos necessários à produção, como cotação de preços junto a fornecedores, compras e acompanhamento do fornecimento. TLBD Industria hipotética Produção Produtos Vendas ... Produtos Compras ... Produtos ... TLBD Industria hipotética Neste caso, surge o problema de redundância de dados. Redundância de dados ocorre quando uma determinada informação está representada no sistema várias vezes. Redundância Controlada: quando o software tem conhecimento da múltipla representação e garante sincronia. Redundância Não Controlada: -> Entrada repetida da mesma informação -> Inconsistência de dados TLBD Solução para Redundância A Solução para evitar a redundância não controlada de informação é o compartilhamento de dados. Nesta forma de processamento, cada informação é armazenada uma única vez, sendo acessada pelos vários sistemas que dela necessitam. Ao conjunto de arquivos integrados que atendem a um conjunto de sistemas dá-se o nome de banco de dados. TLBD Industria hipotética Produção Vendas Produtos Compras ... TLBD Sistema de Gerência de Banco de Dados Sistema de gerenciamento de banco de dados = Software que incorpora as funções de definição, recuperação e alteração de dados em um banco de dados TLBD Modelos de bancos de dados Um modelo de banco de dados é uma descrição dos tipos de informações que estão armazenadas em um banco de dados. Por exemplo, no caso da indústria citada acima, o modelo de dados poderia informar que o banco de dados armazena informações sobre produtos e que, para cada produto são armazenados seu código, preço e descrição. Observe que o modelo de dados não informa quais os produtos que estão armazenados no banco de dados, mas apenas que o banco de dados contém informações sobre os produtos. TLBD Modelos de Banco de Dados Modelo de banco de dados = Descrição formal da estrutura de um banco de dados TLBD Modelos de Banco de Dados Para construir um modelo banco de dados, usa-se uma linguagem de modelagem de dados. Linguagens de dados podem ser classificadas de acordo com a forma de apresentar modelos, em linguagens textuais ou linguagens gráficas. Um mesmo modelo de dados pode ser apresentado de várias formas. Cada apresentação do modelo recebe a denominação esquema de banco de dados. TLBD Modelos de Banco de Dados No projeto de banco de dados, normalmente são considerados três níveis de abstração de modelo de banco de dados, modelo conceitual, modelo lógico e do modelo físico. TLBD Modelos de Banco de Dados descreve Realidade Nebulosa observa defini Analista Modelo Conceitual Banco de dados descrição Organizar idéias Modelo Lógico Mini Mundo cria Modelo Físico (D TLBD Modelos de Banco de Dados 1. O analista observa a realidade, coleta e organiza idéias e cria o mini-mundo; 2. O mini-mundo é descrito a partir de um modelo conceitual; 3. O modelo conceitual é definido pela realidade nebulosa; 4. O modelo conceitual desencadeia um modelo lógico, que desencadeia um modelo físico; 5. O modelo físico cria efetivamente o banco de dados; 6. O banco de dados descreve a realidade nebulosa. TLBD Modelo conceitual Um modelo conceitual é uma descrição do banco de dados de forma independente da implementação em um SGBD. O modelo conceitual registra que dados podem aparecer no banco de dados. TLBD Modelo conceitual Modelo conceitual = Modelo de dados abstrato que descreve a estrutura de um banco de dados de forma independente de SGBD particular TLBD Modelo conceitual A técnica mais difundida de modelagem conceitual é a abordagem entidade-relacionamento (ER). Nesta técnica, um modelo conceitual é usualmente representado através de diagrama, chamado diagrama entidade-relacionamento (DER). TLBD Modelo Conceitual TLBD Modelo Lógico Um modelo lógico é uma descrição de um banco de dados no nível de abstração visto pelo usuário do SGBD. Assim o modelo lógico é dependente do tipo particular de SGBD que esta sendo usado. Vamos tratar apenas de modelos lógicos referentes a abordagem relacional. TLBD Modelo Lógico TLBD Exemplo de banco de dados hierárquico TLBD Modelo Lógico Um modelo lógico de um BD relacional deve definir quais as tabelas que o banco contém e, para cada tabela, quais os nome das colunas. O modelo lógico para o BD em questão é o seguinte. TipoProduto(codTipoProd,DescrTipoProd); ProdutoI(codProduto,descProduto,precoProd,codTipoProduto); codTipoProd referencia TipoProduto TLBD Modelo Lógico Modelo lógico = Modelo de dados que representa a estrutura de dados de um banco de dados conforme vista pelo usuário do SGBD TLBD Modelo Físico Detalhes de armazenamento interno de informações, que não tem influência sobre a programação de aplicações no SGBD, mas podem influenciar a performance da aplicação (por exemplo, as estruturas de arquivos usadas no acesso as informações) não fazem parte do modelo lógico. Estes detalhes são representados no modelo físico. TLBD Modelo Físico •Descreve as estruturas físicas de armazenamento de dados: •Tipos de dados •Tamanho de campos; •Formas de preenchimento; •Nomes de campos, integridade, etc. •Etapa final do projeto de banco de dados; •Usa DDL (Defination Data Language) para a criação efetiva do banco de dados. TLBD Faixa Tabela codFaixa cd titulo duracao idCd 1 Comida 5:22 1 2 Pra dizer Adeus 3:42 1 3 Família 3:49 1 codCd titulo cantor gravadora 4 Marwim 4:24 1 1 Acústico Titãs SonyMusic 5 Sonífera Ilha 2:50 2 2 Volume dois Titãs SonyMusic 6 É Preciso saber viver 4:11 2 TLBD – Modelagem Conceitual MODELAGEM CONCEITUAL • Conhecer a realidade informal e não organizada; • Levantar FATOS que nos permite conhecer e tornar a realidade de forma mais organizada; • Observar e modelar FATOS mostra o funcionamento do negócio; • Registra FATOS através da criação de um modelo; • FATOS estão registrados em documentos formais: •Fichas; •Memorandos; •Leis; •Decretos; e •Na cabeça das pessoas. TLBD MODELAGEM CONCEITUAL •Ponto central do projeto de banco de dados: •Modelo Entidade-Relacionamento; •Objetivo da modelagem de dados: •Transmitir e apresentar uma •Representação única, •Não redundante e •Resumida TLBD Modelo Entidade-Relacionamento • Definido por Peter Chen em 1976 • Baseado na teoria de E.F. Codd (1970); • A visão da realidade baseia-se no relacionamento entre entidades, que retratam fatos que governam a realidade. • Cada entidade (ou relacionamento) possui atributos; TLBD Modelo Entidade-Relacionamento •Abstração: • Separa a realidade em estudo das partes que são relevantes para o desenvolvimento do Sistema da Informação. • Exclui todos os aspectos que não exercem influência sobre o ambiente a ser modelado. TLBD Modelo Entidade-Relacionamento •“Entidade” pode ser definida como um objeto do mundo real, concreto ou abstrato e que possui existência independente. Cada entidade possui um conjunto particular de propriedades que a descreve chamado “Atributos”. Um atributo pode ser dividido em diversas sub-partes com significado independente entre si, recebendo o nome de “atributo composto”. Um atributo que não pode ser subdividido é chamado de “atributo simples” ou “atômico”. TLBD Modelo Entidade-Relacionamento - ENTIDADES • Objeto do mundo real com identificação distinta e significado próprio; • “Coisas” existentes no negócio cujos dados nos interessa armazenar; •A Entidade é uma classe de dados do negócio com um conjunto de dados de características semelhantes; • A Entidade é um arquivo de dados e suas instâncias são os registros desse arquivo. •Definida por um substantivo no singular: •Sem assento, espaço ou cedilha: Ex: Veiculo, FerramentaLeve, etc. •Representado por um retângulo. TLBD Entidades TLBD Modelo Entidade-Relacionamento - Atributos •Propriedades que definem as entidades; •Os valores dos atributos criam as instâncias de umaentidade como registros de um arquivo de dados, Ex: •FUNCIONÁRIO •NumMatricula •Nome •DataAdmissao. TLBD Modelo Entidade-Relacionamento - Atributos •Definida por um substantivos no singular: •Ex: Tamanho, ValorUnitario, Quantidade, etc. •Sem acento, espaço ou cedilha. • Atributos Chaves dos relacionamentos aparecem no Modelo Lógico mas NÃO aparecem no Modelo Conceitual. TLBD Modelo Entidade-Relacionamento • “Chave Primária” é um atributo identificador que representa univocamente cada ocorrência ou registro de uma tabela. •“Chave Estrangeira” é um atributo que definido como chave primária de uma tabela é incluído na estrutura de outra tabela. TLBD Atributos TLBD Exercício 1 TLBD Exercício 2 Identifique as entidades e os seus respectivos atributos através dos fatos descritos no minimundo a seguir: Uma CLÍNICA MÉDICA necessita controlar as consultas médicas realizadas pelos médicos a ela vinculados, assim como acompanhar quem são os pacientes consultados para manter o acompanhamento clínico deles; Os médicos especialistas (pediatras, neurologistas, cardiologistas, clínicos, etc) são registrados em uma ficha com o CRM, nome, endereço e especialidade; Os pacientes preenchem uma ficha com nome, endereço e sexo; Toda consulta é registrada em um fichário próprio com as informações sobre médico, paciente, diagnóstico, data e hora da consulta. TLBD Exercício 2 - Análise: Qual é o modelo de negócio a ser criado? Define o nome do Banco de Dados: Clinica Médica Identificação das entidades Define as tabelas do banco de dados a ser criado: Paciente e Médico Identificação dos atributos das entidades Define os campos das tabelas: Medico (CRM, Nome, Endereco e Especialidade) e Paciente (Nome, Endereco e Sexo) E a consulta? Ela tem atributos? Se sim então ela é uma entidade? TLBD Exercício 2 - Análise: E a consulta? Ela tem atributos? Se sim então ela é uma entidade? E a consulta? Observe a expressão: “ Toda consulta é registrada… …com informações sobre Médico, Paciente…” podemos concluir que: A consulta é um elo entre as entidades Medico e Paciente, logo não é uma entidade mas um relacionamento.