A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Modelagem de Banco de Dados

Apresentações semelhantes


Apresentação em tema: "Modelagem de Banco de Dados"— Transcrição da apresentação:

1 Modelagem de Banco de Dados
Prof. Marcus Vinícius

2 - 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.

3 (1) (2) (3)

4 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)

5 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.

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

7 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

8 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 registros  Planilha Eletrônica (Excel) Aprox registros  Access Acima de  SGBD

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

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

11 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.. )

12 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.

13 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

14 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

15 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, , Arquivos) Client Side

16 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

17 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)

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

19 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

20 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.

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

22 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)

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

24

25 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)

26 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)

27

28 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);

29 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

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

31 É 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

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

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

34

35 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

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

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

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

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

40 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:

41 ? corrente aquatico terrestre aereo poupanca

42 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

43 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)

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

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

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

47

48 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).

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

50 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

51 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

52 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

53 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

54 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

55 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 

56 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);

57 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));

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

59 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, Varchar(60) NOT NULL, Primary Key (codProfissional); Alter table profissional add Foreign Key (codProfissionalChefe) references profissional (codProfissional) on delete restrict on update restrict;

60 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;

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

62 password() – 16 caracteres md5() – 32 caracteres
Senha Normal Senha Criptografada com MD5 123456 E10adc3949ba59abbe56e057f20f883e c5eb49ce129f7bc0370ca2cf AB1564 B27ebb234978c30459e1cce3c40609c0 yuTRk7893 23bcf705d7fb11ee155ea9aeeb5c15fe C293dc308b571573e149ae5b0bcc4f4e Criptografia Unidirecional password() – 16 caracteres md5() – 32 caracteres sha1() – 40 caracteres

63 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

64 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


Carregar ppt "Modelagem de Banco de Dados"

Apresentações semelhantes


Anúncios Google