Modelagem de Banco de Dados

Slides:



Advertisements
Apresentações semelhantes
01/08/2011 Professor Leomir J. Borba- –
Advertisements

Um pouco mais de cardinalidade e Relacionamentos
Base de Dados para a Gestão de Informação de Natureza Pedagógica
O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Laboratório WEB Professora: Viviane de Oliveira Souza Gerardi.
Banco de Dados Prof. Antonio.
Banco de Dados I Aula 20.
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
SQL Renata Viegas.
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.
Resumo 1.1) Introdução 1.2) Abordagem Convencional de Arquivos
O Modelo E-R Definição: Características
Funcionalidades de um SGBD
Prof.: Bruno Rafael de Oliveira Rodrigues
Prof.: Bruno Rafael de Oliveira Rodrigues
Prof.: Bruno Rafael de Oliveira Rodrigues
SISTEMAS DE INFORMAÇÃO
Maurício Edgar Stivanello
Sistema Gerenciador de Banco de Dados SGBD
Sistema Gerenciador de Banco de Dados SGBD
Introdução a Bancos de Dados
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
Profa. Aline Vasconcelos
Prof. Carlos H. Marcondes
Conceitos Básicos Dado: fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação Exemplos: endereço,
Sistemas de Informação
Linguagem de Banco de Dados - SQL
Bancos de Dados – SQL – parte 1
Banco de dados Profª Kelly Medeiros.
Administração de Sistemas de Informação Banco de Dados
Banco de Dados Prof. MSc Wagner Siqueira Cavalcante
Educação Profissional Técnica de Nível Médio em Informática
Prof. Alfredo Parteli Gomes
SQL Server 2012 Introdução a Modelagem de Dados
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Introdução a Banco de Dados com exercícios de aplicação
Comunicação Digital – Elementos de TI
Banco de Dados Aplicado ao Desenvolvimento de Software - BDD
Sistema de Gerenciamento de Pessoas e Projetos
Autora: Carla DeAngelis Autor: Adilson da Silva Lima
Design Patterns / Acesso ao banco de dados (java.sql)
BD.
Desenvolvendo um script SQL
Projetando uma base de dados
Introdução a Banco de dados
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros
Banco de dados.
Análise de Sistemas de Informação
Curso Técnico em Informática
Contexto da disciplina
A abordagem de banco de dados para gerenciamento de dados
Banco de Dados Aplicado ao Desenvolvimento de Software
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
TECNOLOGIAS E LINGUAGENS PARA BANCO DE DADOS I
Contatos Gladimir Catarino
Curso de Análise e Desenvolvimento de Sistemas Projeto de Banco de Dados Marcelo da Silveira Siedler.
Banco de Dados I I Comandos SQL
Banco de dados 1 Modelagem de Dados Utilizando MER
Arnaldo Rocha1995 BANCO DE DADOS Modelo Relacional.
Professor Me. Jeferson Bussula Pinheiro.
Banco de Dados I Aula 4 - Projeto Conceitual de Banco de Dados
Banco de Dados I Aula 3 - Projeto Conceitual de Banco de Dados
UCSal – Bacharelado em Informática
Professora: Kelly de Paula Cunha
Banco de Dados SQL (Structured Query Language) Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Modelo Entidade-Relacionamento (ER)
 O Modelo E-R (Entidade-Relação)
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Modelagem de Banco de Dados: Conceitos
Transcrição da apresentação:

Modelagem de Banco de Dados Prof. Marcus Vinícius drakhos@gmail.com www.marcussilva.com.br

- Dados contextualizados e apresentados de forma significativa e útil - Fator que pode ser gravado - Não possui utilidade INFORMAÇÃO - Dados contextualizados e apresentados de forma significativa e útil AÇÃO / CONHECIMENTO Atitude tomada com base em experiências / conhecimento pessoal mediante a informação recebida.

(1) (2) (3)

Total de Alunos: 3 Total de Aprovados: 2 Total de Pontos: 211 Média das Notas: 70,33 Sexo masculino: 2 Sexo feminino: 1 (1) (2) (3)

Total de Alunos: 3 Total de Aprovados: 2 Total de Pontos: 211 Média das Notas: 70,33 Sexo masculino: 2 Sexo feminino: 1 AÇÕES: A quantidade de alunos não são suficientes conforme estrutura da escola. A escola deve investir no marketing para captação de novos alunos. A média das notas estão baixas em relação ao nível de conhecimento adquirido e esperado pelos alunos. A escola deve verificar onde está a falha no processo de aprendizagem.

Dados Persistentes Uma coleção de dados persistentes podem ser armazenados em vários tipos de dispositivos, como: Planilha Eletrônica, Agenda e Documentos

O Professor José deseja armazenar os nomes e data de nascimento de seus alunos, qual o melhor banco de dados para indicar? Carlos Alberto Costa Maria Joana Pereira Fernanda Oliveira Alan Cordeiro Lima Bianca Souza 20/05/1990 29/11/1985 09/08/1950 03/12/1976 06/01/1963 Total de Registros: 5

O Professor José deseja armazenar os nomes e data de nascimento de seus alunos, qual o melhor banco de dados para indicar? Aprox. 10 registros  Folha de Papel (manual) Aprox. 50 registros  Documento de Texto (word) Aprox. 1.000 registros  Planilha Eletrônica (Excel) Aprox. 10.000 registros  Access Acima de 10.000  SGBD

O que é um Banco de Dados? Para que serve um Banco de Dados? Qual o melhor Banco de Dados?

Restrições de acesso aos dados Armazenamento persistente Recursos para consultas Backup e Restore Controle de redundância (compartilhamento X replicação)

Abstração de alto nível Modelagem Conceitual Abstração de alto nível DER alto nível Identificação dos requisitos de software e de banco de dados Modelagem Lógica Modelagem do Projeto de Banco de Dados (DER) Modelagem Física Geração de Script do Banco de Dados Implementação do Banco de Dados Otimização de Estrutura (view, índices, chaves, etc.. )

Projeto de Banco de Dados Diagrama de Esquema Projeto de Banco de Dados Estado vazio (sem dados) Instância ou Estado Os dados no banco de dados em um determinado momento no tempo são chamados de estado ou instante do banco de dados. Também são chamados de conjunto atual de ocorrências ou instâncias no banco de dados.

Linguagem do SGBD Linguagem de comunicação com o banco de dados (SQL: DML, DQL, DDL, etc... ) Interfaces de Aplicação para Usuários Interfaces amigáveis de manipulação das informações pelos usuários Interfaces de buscas Interface dentro da área administrativa do banco, utilizada para buscar informações sem a utilização de comandos SQL Interface de Entrada e Saída de voz Interface dentro da área administrativa do banco, com base em comando de voz para realizar procedimentos no banco de dados Interface para o DBA Interface visual de administração do banco de dados

Carga Geração de carga de teste nos objetos do banco de dados Reorganização Reorganização das instâncias armazenas, com objetivo de melhoria de desempenho. Comando: OPTIMIZE TABLE aluno Monitoração de Desempenho Utilitários para monitoramento do uso do banco de dados

Centralizada Arquitetura antiga Utilização de Mainframe Terminais (baixa capacidade de processamento) Todo processamento é feito no servidor Arquitetura de Cliente / Servidor Servidor de Banco Estação de Trabalho Servidores Especializados (Aplicação, E-mail, Arquivos) Client Side

Servidor Web (IIS, Apache e Tomcat) Camada de Apresentação Cliente Camada Lógica De Negócios Servidor Web (IIS, Apache e Tomcat) Camada de Serviços De Banco de dados Servidor de Banco de Dados

Modelo de dados hierárquico e de rede Modelo baseado em arquivos Modelo Relacional de dados Objetos Relacionais (MySQL, SQL Server e Oracle) Modelo de Dados Orientado a Objetos Modelo de dados Pseu da Orientação a Objetos ou Pós-Relacional (Caché) Modelo XML Nativos Modelo de dados estruturados em documentos XML (Tamino)

Case Studio DBDesigner Poseidon System Architect Rational Rose Enterprise Architect Erwin Visible Suite Power Designer Jude Software utilizado para projetar um Banco de Dados.

Criadas antes do SQL SQL: linguagem derivada Operações Relacionais: Unárias: Seleção e Projeção de Resultados com apenas 1 tabela Binárias: Seleção com 2 tabelas combinando tuplas relacionadas

Operação Relacionais Unárias: Seleção e Projeção Seleção: é usada para escolher um subconjunto das tuplas de uma relação que satisfaça uma condição de seleção. σ (sigma) indicar operador de seleção σ salario >= 3000(FUNCIONARIO) * Busca todos funcionário com o salário maior ou igual a 3 mil.

σ salario >= 3000 and departamento = 4 (FUNCIONARIO) * Busca todos os funcionários com salário maior ou igual a 3000 e departamento igual a 4.

Operação Relacionais Unárias: Seleção e Projeção Projeção: é usada para definir a lista de atributos que serão mostradas na projeção. π (pi) indicar operador de projeção π nome, salario, telefone (FUNCIONARIO)

Interseção Álgebra: R∩S União Álgebra: A U B Diferença de Conjuntos Álgebra: A-B

Operação Relacionais binárias: Junção Junção: é usada para combinar tuplas relacionadas de duas relações em uma única tupla maior. X (Junção) indicar operador de junção π nome, cpf (FUNCIONARIO X (cpf_fun = cpf_ger) GERENTE)

Funções: SOMA, MÉDIA, MÁXIMO, MÍNIMO £ (F script) é usado para definir as funções de agregação NroDep £ MÉDIA salario (FUNCIONARIO) NroDep £ MÁXIMO salario (FUNCIONARIO)

O que é uma entidade? Conjunto de objetos / registros / tuplas de uma mesma natureza. Outras definições: “...algo o mundo real com existência independente.” (NAVATHE, 2005); “Conjunto de objetos da realidade do mundo modelada sobre os quais deseja-se manter informações no banco de dados.” (HEUSER, 2004);

O que deve compor em uma entidade? - Nome Atributo chave (unívoco) - PK (Primary Key) Propriedades de um objeto/registro Observações: - Nomenclatura das tabelas Nomenclatura das chaves Nomenclatura dos atributos

É o fator de comunicação e referência entre Entidades.

É o mínimo de ocorrência em uma entidade. 0,0 | 0,1 | 0,N | 1,0 | 1,1 | 1,N | N,0 | N,1 | N,N

(1,1) (1,N) (0,1) (0,N)

1) Ache o relacionamento e a cardinalidade das entidades abaixo: aluno e prova cliente e conta_receber banco e agencia cliente e conta_pagar

Segue abaixo alguns tipo de Atributos comuns em uma modelagem de base de dados: Tipos de Atributos Descrição Cadeia de Caracteres Char(n) - Tamanho fixo de Caracteres Varchar(n) – Tamanho máximo de Caracteres Numéricos Int(n) - Tamanho máximo de Caracteres Float(m,n) – Tamanho fixo de casas decimais Date e Time Date() - Armazenamento de data Time() - Armazenamento de horário Texto Livre Text() - Atributo de texto livre

Tipos de Atributos(caracteres) nome Varchar(60) telefone Varchar(13) sexo Char(1) nota Int(3) salario Float(5,2) dataNascimento Date() horaCadastro Time()

Devemos gravar o dado no banco com máscara ou sem máscara?

Praticar: aluno nome telefone email dataNascimento endereco numero complemento bairro cidade estado cep dataCadastro observacao

O que é uma Entidade Fraca? Entidade Fraca é aquela que para existir depende de uma outra Entidade. Entidade Forte Entidade Fraca

Especialização é uma Entidade derivada de uma Genérica Especialização é uma Entidade derivada de uma Genérica. Uma Entidade genérica pode ser especializada para melhor caracterizar um objeto/registro. Veja o exemplo baixo:

? corrente aquatico terrestre aereo poupanca

NULL Observações: 0 <> null ‘ ’ <> null null X not null Null/Nulo é a possibilidade de um atributo aceitar ausência de valores. Observações: 0 <> null ‘ ’ <> null null X not null

Atributo Null/Not Null nome:varchar(60) not null telFixo:varchar(13) telCelular:varchar(13) null cpf:varchar(14) carteiraHab:varchar(20) dataNascimento:date() nomePai:varchar(60) nomeMae:varchar(60)

A Chave Estrangeira (FK) é utilizada para referenciar registros entre Entidades de um mesmo escopo.

A Chave Estrangeira (FK) é utilizada para referenciar registros entre Entidades de um mesmo escopo.

Sempre que ocorrer um relacionamento entre entidades cuja cardinalidade seja “(M,N)”, é necessário criar uma nova tabela. Veja Exemplo abaixo: (N) (N) consulta

Processo de análise que minimiza redundância de dados e minimiza anomalias nas operações de modificação dos dados. As relações que não satisfazem certas propriedades (formas normais) são sucessivamente decompostas em relações menores de modo a satisfazerem as propriedades pretendidas (Codd 1972).

As principais formas normais são: 1NF – Primeira forma normal 2NF – Segunda forma normal 3NF – Terceira forma normal

Algo que não pode ser dividido Para um esquema relacional estar na primeira forma (1FN), a entidade não deve conter os atributos não atômicos ou as relações aninhadas (só conter os atributos atômicos). (ELMASRI, R. & NAVATHE ) Ex.: enderecoCompleto nomeCompleto noticia carteiraTrabalho ou seja: Atômico é Algo que não pode ser dividido

Para um esquema relacional estar na segunda forma (2FN), as relações que possuam chaves primárias com vários atributos, nenhum atributo externo à chave deve ser funcionalmente dependente de parte da chave primária. (ELMASRI, R. & NAVATHE ) errado

Para um esquema relacional estar na segunda forma (2FN), as relações que possuam chaves primárias com vários atributos, nenhum atributo externo à chave deve ser funcionalmente dependente de parte da chave primária. (ELMASRI, R. & NAVATHE ) certo

Para um esquema relacional estar na terceira forma (3FN), as relações não devem ter atributos que não pertençam a uma chave, funcionalmente determinados por outro atributo que também não pertença a uma chave (ou por um conjunto de atributos não – chave). Isto é, não deve haver dependência transitiva entre um atributo não-chave e uma chave primária. (ELMASRI, R. & NAVATHE ) errado

Para um esquema relacional estar na terceira forma (3FN), as relações não devem ter atributos que não pertençam a uma chave, funcionalmente determinados por outro atributo que também não pertença a uma chave (ou por um conjunto de atributos não – chave). Isto é, não deve haver dependência transitiva entre um atributo não-chave e uma chave primária. (ELMASRI, R. & NAVATHE ) certo

Chave Primária: (PK - Primary Key) é a chave que identifica cada registro dando-lhe unicidade. A chave primária nunca se repetirá. Chave Estrangeira: (FK - Foreign Key) é a chave formada através de um relacionamento com a chave primária de outra tabela. Define um relacionamento entre as tabelas e pode ocorrer repetidas vezes. Caso a chave primária seja composta na origem, a chave estrangeira também o será. Chaves Candidatas: Ocorrem quando em uma relação existe mais de uma combinação de atributos possuindo a propriedade de identificação única. Matrícula, CPF, RG, Titulo Eleitor 

codMedico Int NOT NULL AUTO_INCREMENT, nome Varchar(40) NOT NULL, Chaves Candidatas ou Chaves Alternativas (KA – Alternate Key): Ocorrem quando em uma relação existe mais de uma combinação de atributos possuindo a propriedade de identificação única. Matrícula, CPF, RG, Titulo Eleitor  Create table medico ( codMedico Int NOT NULL AUTO_INCREMENT, nome Varchar(40) NOT NULL, cpf Char(14) NOT NULL, Primary Key (codMedico)); Alter table medico add unique KA_cpf (cpf);

Chave Simples: Chave definida por apenas 1 atributo. Chave Composta: Chave definida por mais de 1 atributo. Create table cidade ( cidade Varchar(40) NOT NULL, estado Char(2) NOT NULL, populacao Int NOT NULL, Primary Key (cidade,estado));

Create table consulta ( codMedico Int NOT NULL, codPaciente Int NOT NULL, dataHora Datetime NOT NULL, Primary Key (codMedico,codPaciente,dataHora));

Auto Relacionamento (Self Relationship) O Self Relationship é usado quando ocorre o relacionamento de uma tabela com ela mesma. No exemplo abaixo o objetivo é identificar o chefe de um determinado profissional. Create table profissional ( codProfissional Int NOT NULL AUTO_INCREMENT, codProfissionalChefe Int NOT NULL, nome Varchar(40) NOT NULL, email Varchar(60) NOT NULL, Primary Key (codProfissional); Alter table profissional add Foreign Key (codProfissionalChefe) references profissional (codProfissional) on delete restrict on update restrict;

codCargo Int NOT NULL AUTO_INCREMENT, nome Varchar(40) NOT NULL, Código de criação do auto incremento e definição do valor inicial do auto incremento. Create table cargo ( codCargo Int NOT NULL AUTO_INCREMENT, nome Varchar(40) NOT NULL, Primary Key (codCargo))AUTO_INCREMENT = 1000;

cliente funcionario (1,1) (1,1) usuario (0,1) (0,1)

password() – 16 caracteres md5() – 32 caracteres Senha Normal Senha Criptografada com MD5 123456 E10adc3949ba59abbe56e057f20f883e 1859789 79044446c5eb49ce129f7bc0370ca2cf AB1564 B27ebb234978c30459e1cce3c40609c0 yuTRk7893 23bcf705d7fb11ee155ea9aeeb5c15fe G&*/osiusn#@ C293dc308b571573e149ae5b0bcc4f4e Criptografia Unidirecional password() – 16 caracteres md5() – 32 caracteres sha1() – 40 caracteres

Regra de Negócio: O cliente pode ter no máximo 3 endereços, sendo: cobrança, comercial e residencial. (1,N) (1,3) cliente endereco

Criação de Tabelas Atributos Tipos de Dados PK Relacionamento FK Cardinalidade Auto Incremento UNIQUE Alternate Key Null X Not Null Index Imagem de Projeto Database Conversion Geração de SQL Engenharia Reversa