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

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

Tópicos em Banco de Dados Prof. Edson Scalabrin e Aroldo Vieira

Apresentações semelhantes


Apresentação em tema: "Tópicos em Banco de Dados Prof. Edson Scalabrin e Aroldo Vieira"— Transcrição da apresentação:

1 Tópicos em Banco de Dados Prof. Edson Scalabrin e Aroldo Vieira

2 Conceitos e Arquitetura

3 O que é um SGBD SGBD – Sistema Gerenciador de Banco de Dados. DBMS – Data Base Management System Sistema que visa gerenciar de modo adequado e eficiente as bases de dados

4 DBMS AplicativosUsuários Banco de dados Visão simplificada de um sistema de banco de dados

5 SGBD Arquitetura – Visão Global Nível Conceitual Visão da comunidade de usuários Nível Interno Visão do armazenamento de dados Nível Externo Visão de cada usuário

6 Vantagens do uso de DBMS Redução de redundância de informações Redução de inconsistência Compartilhamento de informações Manutenção da integridade dos dados Independência de dados em relação ao aspecto físico de armazenamento

7 Vantagens do uso de DBMS Reforço dos padrões da empresa Melhoria na segurança das informações Balanceamento das necessidades conflitantes

8 Objetos do DBMS

9 Objetos de um DBMS Usuários / Autorizações / Papéis Tabelas / Colunas Nulos e defaults Índices Constraints de Integridade Stored Procedures Triggers

10 Objetos do DBMS Conexões Client / Server Controles de acessos multiusuários Integridade Segurança Otimizador e Planos de acesso Catálogo de dados Logs

11 DBMS Relacional

12 Representação dos dados em formas de tabelas, como conjunto de linhas e colunas Como conjunto não possui ordenação Maior facilidade na implementação Possuem regras para a nomenclatura As tabelas devem estar normalizadas

13 DBMS Relacional Os arquivos obedecem a limitações que podem ser consideradas como relações matemáticas Linhas Colunas Domínios => Reservatório de valores

14 DBMS Relacional Dicionário de dados integrado (catálogo) Linguagem SQL padrão: DDL – Data Definition Language DML – Data Manipulation Language DCL – Data Control Language

15 DBMS Relacional Chave Primária (PK): Coluna(s) que identifica unicamente uma linha da tabela Não pode possuir valores nulos Não pode ter valores duplicados Não pode ter seus valores alterados Chaves estrangeiras (FK): Coluna(s) cujos valores fazem referência a uma PK em outra tabela

16 Modelo Relacional Formas Normais

17 Regras desenvolvidas para: Evitar inconsistências lógicas nas operações de atualização das tabelas. Evitar redundância na organização das tabelas. Primeira Forma Normal Segunda Forma Normal Terceira Forma Normal Diminui o desempenho Aumenta as restrições

18 Primeira Forma Normal – 1FN Definição: o domínio de todos os atributos das tabelas deve ser atômico (indivisível) Cada coluna da tabela deve conter só um tipo de atributos id_pessoanomecontato Tabela Pessoa Não Satisfaz 1FN Brigadeiro Franco id_pessoanomeendereço Tabela Pessoa telefone Satisfaz 1FN

19 Exercício – 1FN Cadastro de clientes COD CLIENTE NUM_CPF_CGC VALOR_DEVEDOR Cadastro de clientes –COD CLIENTE –NUM_CPF_CGC –NUM_DV_CPF –NUM_CGC –NUM_DV_CGC –VALOR_EMPREST –VALOR JUROS –VALOR_CORR_MON Não atende a 1FN Atende a 1FN

20 Segunda Forma Normal – 2FN Definição: cada tabela deve satisfazer a 1FN, cada registro deve ter uma chave primária e cada campo não chave deve depender totalmente da chave primária. Não Satisfaz 2FNid_pessoanomeendereçoconta saldoagência endereço_agência os campos dependem apenas de parte da chave primária, alguns apenas de conta outros apenas de id_pessoa chave primária: id_pessoa + conta Satisfaz 2FN contasaldoagênciaendereço_agência id_pessoanomeendereçoconta chave primária: id_pessoa chave primária: conta

21 Exercício – 2 FN Peça_Carro Cod_peça Desc_peça Qtde_estoque End_local_estoque Peça_Carro –Cod_peça –Desc_peça –Qtde_estoque –Rua_End_local –Num_end_local –Etc_endereço Não atende a 1FN Atende a 1FN

22 Exercício – 2 FN Peça_Carro Cod_peça Desc_peça Qtde_estoque End_local_estoque Peça_Carro –Cod_peça –Desc_peça –Qtde_estoque –Cod_local_estoque Local_estoque –Cod_local_estoque –Rua_End_local –Num_end_local –Etc_endereço Não atende a 2FN Atende a 2FN

23 Terceira Forma Normal – 3FN Definição: cada tabela deve satisfazer a 2FN e cada atributo não chave primária depende diretamente da chave primária. Não Satisfaz 3FN contasaldoagênciaendereço_agência id_pessoanomeendereçoconta o endereço da agência não depende da conta, mas da agência. Satisfaz 3FN endereço_agência contasaldoagência

24 Exercício – 3 FN Nota_aluno Cod_aluno Nome_aluno Nome_disciplina Cod_professor Nota Aluno –Cod_aluno –Nome_aluno Disciplina –Cod_disciplina –Nome_disciplina –Cod_professor Nota_aluno –Cod_aluno –Cod_disciplina –Nota Não atende a 3FN Atende a 3FN

25 Comandos básicos de SQL

26 SQL – Criação de tabela CREATE TABLE tabela ( coluna1 int not null, coluna2varchar(50) not null default (XX'), coluna3 datetime not null default (getdate()) )

27 SQL - Insert Insert into tabela (coluna, coluna) Values (valor_coluna, valor_coluna)

28 SQL - Update Update tabela Set coluna = novo_valor Where condição

29 SQL - Delete Delete from tabela Where condição

30 SQL – Seleção de dados Select função(colunas), coluna From tabela Where condição Order by coluna Group by coluna Having condição Obs: having deve ser usado quando existir restrição e utilização de funções de grupo.

31 SQL – Operadores do Where =><>= Between In Like Is null NOT (pode ser utilizado com todos os operadores)

32 SQL – Funções de agrupamento Sum ( n ) Avg ( n ) Min (exp ) Max (exp ) Count ( exp )

33 Exercício

34 ColunaTipoNullDefault Constraint Id_alunosmallintN PK Nome_alunoChar(40)NNP Sexo_alunoChar(01)N M, F Dt_nascSmalldatetime Dt_alter_tabDatetimeN GETDATE() ObservacoesVarchar(250) Criar tabela aluno

35 Inserir as linhas abaixo Id_aluno = 1 / Sexo_aluno = X Id_aluno = 1 / Sexo_aluno = M Id_aluno = 1 / Sexo_aluno = F Observar as mensagens que ocorreram e o resultado final Obs: Utilizar o query analizer e inserir as linhas utilizando o comando insert into...

36 Inserir as colunas em aluno Cd_sit_alunotipo smallint Id_cursotipo smallint Verificar a possibilidade de incluir restrição de not null para as novas colunas Utilizar enterprise manager ou query analizer

37 Criar tabela curso Id_cursotipo smallint Nome_cursotipo char(30) Dt_implantaçãotipo smalldate Dt_alt_tabtipo datetime Considerar todos os campos sendo not null Incluir default data atual para dt_alt_tab Inserir linhas nesta tabela

38 Criar tabela situacao_aluno Cd_sit_alunotipo smallint Desc_sit_alunotipo char(30) Dt_alt_tabtipo datetime Considerar todos os campos sendo not null Incluir default data atual para dt_alt_tab Inserir linhas nesta tabela

39 Implementar Foreign key Alterar a tabela aluno, implementando a integridade relacional com as demais tabelas criadas Em caso de erro, verificar e acertar os dados nas tabelas, para não ferir a integridade

40 Select Obter todos os alunos do sexo M Obter todos os alunos do sexo F Contar o total de linhas da tabela aluno Contar a qtde de alunos do sexo F e M Contar os alunos por curso Contar os alunos por situação Contar os alunos por curso e situação

41 Exercício

42 Exercício – Banco de dados Definir modelo normalizado, para a questão apresentada anexa Implementar e popular as tabelas do modelo

43 Mãos à obra ! ! ! !


Carregar ppt "Tópicos em Banco de Dados Prof. Edson Scalabrin e Aroldo Vieira"

Apresentações semelhantes


Anúncios Google