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

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

Tópicos em Banco de Dados

Apresentações semelhantes


Apresentação em tema: "Tópicos em Banco de Dados"— 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 Visão simplificada de um sistema de banco de dados Aplicativos
Usuários Banco de dados

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

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 DBMS Relacional 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 Formas Normais 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 Aumenta as restrições Diminui o desempenho

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_pessoa nome contato Tabela Pessoa Não Satisfaz 1FN Brigadeiro Franco id_pessoa nome endereço Tabela Pessoa telefone Satisfaz 1FN

19 Exercício – 1FN Cadastro de clientes 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 chave primária: id_pessoa + conta chave primária: id_pessoa
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 2FN id_pessoa nome endereço conta saldo agê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 conta saldo agência endereço_agência id_pessoa nome endereço chave primária: id_pessoa chave primária: conta

21 Exercício – 2 FN Peça_Carro Peça_Carro Cod_peça Desc_peça Cod_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 Peça_Carro Local_estoque Cod_peça Cod_peça
Desc_peça Qtde_estoque Cod_local_estoque Local_estoque Rua_End_local Num_end_local Etc_endereço Peça_Carro Cod_peça Desc_peça Qtde_estoque End_local_estoque 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 conta saldo agência endereço_agência id_pessoa nome endereço o endereço da agência não depende da conta, mas da agência. Satisfaz 3FN endereço_agência conta saldo agência

24 Exercício – 3 FN Aluno Nota_aluno Disciplina Nota_aluno Cod_aluno
Nome_aluno Disciplina Cod_disciplina Nome_disciplina Cod_professor Nota_aluno Nota Nota_aluno Cod_aluno Nome_aluno Nome_disciplina Cod_professor 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,
coluna2 varchar(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 Criar tabela aluno Coluna Tipo Null Default Id_aluno smallint N PK
Constraint Id_aluno smallint N PK Nome_aluno Char(40) ‘NP’ Sexo_aluno Char(01) ‘M’ , ‘F’ Dt_nasc Smalldatetime Dt_alter_tab Datetime GETDATE() Observacoes Varchar(250)

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_aluno tipo smallint Id_curso tipo smallint Verificar a possibilidade de incluir restrição de “not null” para as novas colunas Utilizar enterprise manager ou query analizer

37 Inserir linhas nesta tabela
Criar tabela “curso” Id_curso tipo smallint Nome_curso tipo char(30) Dt_implantação tipo smalldate Dt_alt_tab tipo 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_aluno tipo smallint Desc_sit_aluno tipo char(30) Dt_alt_tab tipo 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"

Apresentações semelhantes


Anúncios Google