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

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

Fundamentos de Banco de Dados Prof. André Cypriano M. Costa

Apresentações semelhantes


Apresentação em tema: "Fundamentos de Banco de Dados Prof. André Cypriano M. Costa"— Transcrição da apresentação:

1 Fundamentos de Banco de Dados Prof. André Cypriano M. Costa amonteiro@catolica-es.edu.br acostaprofessor@gmail.com

2  A SQL engloba vários tipos de comandos: Comandos de manipulação de dados (DML - Data Manipulation Language)  São comandos que nos permitem consultar, incluir, excluir ou alterar dados de tabelas. Comandos de definição de dados (DDL - Data Definition Language)  São comandos que nos permitem manipular a estrutura do banco de dados, criando cada uma de suas tabelas com seus atributos, chaves etc.

3  Nesta parte iremos ver os Comandos de Definição de Dados, chamados de DDL - Data Definition Language (por exemplo: Create, Alter e Drop)  São comandos que nos permitem manipular a estrutura do banco de dados, criando cada uma de suas tabelas com seus atributos, chaves primárias e estrangeiras etc.  Em seguida, veremos outros comandos de manipulação de dados (DML), como o insert, update e delete

4  O conjunto de relações (tabelas) de um BD precisa ser especificado ao sistema por meio de uma linguagem de definição de dados - DDL.  A SQL DDL permite a especificação não apenas de um conjunto de relações, mas também de informações sobre cada relação, incluindo: Esquema para cada relação (seus atributos); Domínio de valores associados a cada atributo; Conjunto de índices a ser mantido para cada relação; Restrições de integridade; Definição de chaves primárias e chaves estrangeiras etc.

5  Um banco de dados em SQL é definido usando o comando create database: create database ; onde é o nome do banco de dados  Exemplo: create database myDatabase;  Para apagar um banco de dados use o comando: drop database ;

6  Uma relação SQL é definida usando o comando create table: create table R ( A 1 D 1 [N 1 ] [d 1 ], A 2 D 2 [N 2 ] [d 2 ],..., A n D n [N n ] [d n ],,..., );

7  R é o nome da relação  Cada A i é o nome de um atributo em R  D i é o tipo dos atributos A i,  [N i ] indica que o atributo deve ser obrigatoriamente preenchido ou não. Por padrão, N i recebe o valor NULL.  [d i ] indica que o atributo possui algum valor padrão ou não. Por padrão, os atributos não possuem valor padrão.

8  Exemplo: create table Time ( numCadastro INTEGER NOT NULL, nome VARCHAR(30) NOT NULL, cidade VARCHAR(50) default ‘Vitória’, situacao INTEGER NOT NULL ); R AiAi DiDi didi NiNi

9  As Regras de Integridade permitidas englobam: Chaves primárias Chaves estrangeiras

10  Toda tabela deve ter uma chave primária que pode ser simples ou composta. Simples  usa apenas um atributo. Composta  usa dois ou mais atributos.  O objetivo da chave primária é identificar unicamente entidades dentro de um conjunto de entidades. A chave primária nunca se repetirá. Ela é única.  Para criar uma chave primária basta usar a palavra chave primary key e entre parênteses colocar o nome dos campos que compõem a chave [constraint [identificado]] primary key (A 1, A 2,...., A J )

11  Criando uma tabela com chave primária: create table NOME_TABELA ( atrib1 not null, atrib2 not null,...., atribX, primary key (atrib1, atrib2,...) );

12  Exemplos : create table cliente ( idintegernot nullauto_increment, nomevarchar(45)not null, cpfvarchar(20)not null, enderecovarchar(100)not null, primary key (id) );

13 create table agencia ( numAgenciaintegernot null, nomevarchar(45)not null, enderecovarchar(100)not null, fundosdecimal(10,2)not null, constraint pk_agencia primary key (numAgencia) ); create table correntista ( idClienteintegernot null, numAgenciaintegernot null, numContaintegernot null, primary key (idCliente, numAgencia, numConta) );

14  O conceito de chave estrangeira se refere ao tipo de relacionamento entre as tabelas de dados do BD.  Uma chave estrangeira (foreign key) é a chave formada através de um relacionamento com a chave primária de outra tabela. A chave estrangeira é um campo que aponta para a chave primária de outra tabela.  Ela define um relacionamento entre as tabelas e pode ocorrer repetidas vezes. A chave estrangeira pode repetir em uma tabela.

15  Caso a chave primária seja composta na origem, a chave estrangeira também será.  A finalidade da chave estrangeira é garantir a integridade dos dados referenciais. Apenas serão permitidos valores que aparecem ou que supostamente vão aparecer na Base de Dados.

16  Exemplo  O relacionamento entre AGENCIA e CONTA é feita via atributo numAgencia Em AGENCIA é a chave primária, logo seu valor é único Em CONTA é uma chave estrangeira, portanto seu valor pode aparecer diversas vezes Tabela AGENCIATabela CONTA - numAgencia (PK) - nome - endereco - fundos - numeroConta - numAgencia (FK) - saldo

17  Para se definir uma chave estrangeira deve usar a seguinte sintaxe:  [constraint [identificador]] foreign key (atrib1, atrib2,...) references nome_tabela [(atribX, atribY,...)] [on delete opção] [on update opção]  ou seja, deve-se referenciar os campos da tabela corrente (atrib1, atrib2,...) com os atributos a que estão relacionados na tabela nome_tabela (atribX, atribY,...)  Se os atributos da tabela corrente forem iguais aos atributos da tabela referenciada, pode-se omitir os nomes desses atributos.

18  Exemplo create table agencia ( numAgencia integer not null, nome varchar(45) not null, endereco varchar(100) not null, fundos decimal(10,2) not null, primary key (numAgencia) ); create table conta ( numConta integer not null, numAgencia integer not null, saldo decimal(10,2) not null, primary key (numConta, numAgencia), foreign key (numAgencia) references agencia(numAgencia) );

19  Algumas ações podem estar associadas a chaves estrangeiras  Essas ações ocorrem quando se atualiza ou se remove um valor que é chave PRIMÁRIA na tabela referenciada pela chave estrangeira.

20  ON UPDATE: A cláusula ON UPDATE indica que quando uma atualização é executada sobre uma linha na tabela referenciada, uma das seguintes ações será executada: ○ NO ACTION (RESTRICT) A atualização de uma chave primária pode ser abortada caso um registro em uma tabela referenciada tenha um valor mais antigo. Este parâmetro é o default quando esta cláusula não recebe nenhum parâmetro.  Exemplo: Tentar atualizar o código de um cliente quando esse cliente já possui um pedido. Um erro é gerado!

21  ON UPDATE: ○ CASCADE (Em Cascata) Quando o campo da chave primária é atualizado, registros na tabela referenciada são atualizados em cascata.  Exemplo: Tentar atualizar o código de um cliente quando esse cliente já possui um pedido. Nenhum erro é gerado, pois o código do cliente também será atualizado na tabela PEDIDO.

22  ON DELETE: Esta cláusula indica que quando uma exclusão é executada sobre uma linha na tabela referenciada, uma das seguintes ações será executada: ○ NO ACTION (RESTRICT) Quando um campo de chave primária está para ser deletado, a exclusão será abortada caso o valor de um registro na tabela referenciada seja mais velho. Este parâmetro é o default quando esta cláusula não recebe nenhum parâmetro.  Exemplo: Tentar excluir um cliente que possui um pedido Um erro será gerado!

23  ON DELETE: ○ CASCADE Quando um registro com a chave primária é excluído, todos os registros relacionados com aquela chave são excluídos. ○ SET NULL Quando um registro com a chave primária é excluído, os respectivos campos na tabela relacionada recebem NULL. ○ SET DEFAULT Quando um registro com a chave primária é excluído, os campos respectivos da tabela relacionada recebem o valor DEFAULT.

24  Exemplo: create table conta ( numConta integer not null, numAgencia integer not null, saldo decimal(10,2) not null, primary key (numConta, numAgencia), foreign key (numAgencia) references agencia(numAgencia) on update cascade on delete set null );

25  O comando alter table é usado para alterar a estrutura de uma relação existente.  Ele permite que o usuário faça a inclusão, exclusão de atributos e alteração de restrições nos atributos em uma tabela.  A forma geral para o comando alter table é a seguinte: alter table [ ]; onde add, adiciona uma coluna; drop, remove uma coluna; e alter, modifica algo em uma tabela.

26  Exemplos: create table agencia ( nome_agenciavarchar(20)not null, cidade_aenciavarchar(20)default'', fundointeger(10), primary key (nome_agencia) );  Inserindo nova coluna chamada cep como char(9); alter table agencia add cep char(9);  Inserindo uma coluna chamada num como um valor inteiro e com zero como valor padrão; alter table agencia add num decimal default 0;

27  Exemplos: nome_agencia varchar(20) cidade_agencia varchar(20) fundos double cep char(9)num int RedwoodPalo Alto2100000 0 PerryridgeHorseneck1700000 0 MianusHorseneck400000 0 Round HillHorseneck8000000 0 PownalBennington300000 0 North TownRye3700000 0 BrightonBrooklyn7100000 0 DownBrooklyn9000000 0

28  Exemplos: create table agencia ( nome_agenciavarchar(20)not null, cidade_aenciavarchar(20)default'', fundointeger(10), cepchar(9), numintegerdefault 0, primary key (nome_agencia) );  Excluindo a coluna CEP alter table agencia drop column cep;  Excluindo a coluna fundos alter table agencia drop column fundos;

29  Exemplos: nome_agencia varchar(20) cidade_agencia varchar(20) num int RedwoodPalo Alto0 PerryridgeHorseneck0 MianusHorseneck0 Round HillHorseneck0 PownalBennington0 North TownRye0 BrightonBrooklyn0 DownBrooklyn0

30  Alterando restrições numa tabela.  Exemplos: alter table agencia alter column cod set not null; alter table agencia alter column cod set default 0;  É possível inserir uma chave estrangeira numa tabela depois de criada usando o comando: alter table tabela add foreign key (campo) references tabela(campo);

31  Para apagar uma tabela do banco de dados use o comando: drop table ;  onde é o nome da tabela.  O comando drop table remove todas as informações da relação no banco de dados.  Exemplo: Para eliminar uma tabela chamada EMPREGADO, fazemos: drop table EMPREGADO;

32  OBSERVAÇÃO: Existem casos em que a chave primária da tabela que se está apagando é utilizada como chave estrangeira ou como chave primária composta em diversas tabelas que devem ser devidamente corrigidas. Este processo não é assim tão simples pois, a exclusão da tabela EMPREGADO implica na alteração do projeto físico de diversas tabelas. Isto acaba implicando na construção de uma nova base de dados.

33  Um índice pode ser criado em uma tabela para encontrar dados mais rápido e eficiente, sem a necessidade de percorrer toda a tabela.  Os índices não podem ser visualizados pelos usuários.  Observação: Atualizar uma tabela com índice leva mais tempo do que atualizar uma tabela sem índice. Portanto, apenas crie índices em colunas (e tabelas) que serão usadas mais para consultas do que inserção/exclusão.

34  Para criar um índice: create index nomeIndice on nomeTabela (nomeColuna)  Para apagar um índice*: alter table nomeTabela drop index nomeIndice * Sintaxe usada no MySQL.

35  SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S.. Sistema de banco de dados. 3 ed. São Paulo: Pearson Makron Books, 2005, Cap. 4


Carregar ppt "Fundamentos de Banco de Dados Prof. André Cypriano M. Costa"

Apresentações semelhantes


Anúncios Google