Você está na página 1de 29

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

Linguagem SQL Structured Query Language


Banco de Dados

Conceitos de Banco de Dados

Introduo
SQL (Structured Query Language Linguagem de Consulta Estruturada) Os principais SGBDs comerciais a utilizam como linguagem padro de consulta porm com algumas modificaes na sintaxe e nos recursos para funcionalidades especficas do SGBD
2

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

Introduo
uma linguagem de fcil assimilao, que possui clusulas para definies de dados, consultas, atualizaes (inseres, atualizaes e delees) alm de especificao da segurana sobre o banco de dados. Possui ainda recursos para criao de outras estruturas como vises, ndices, triggers, stored procedures alm de ser compatvel com as principais linguagems de programao

Conceitos de Banco de Dados

Introduo
Mais que uma linguagem de consulta, oferece funes para DEFINIO, MANIPULAO e CONTROLE dos dados de um banco de dados:
DDL (Data Definition Language) DML (Data Manipulation Language) DCL (Data Control Language) Transaction Control Tipos de Dados (dependem do SBGD utilizado)

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

DDL
CREATE: criao de novas estruturas como ndices, tabelas, vises, triggers e stored procedures ALTER: alterao das estruturas para adicionar novas propriedades como por exemplo adicionar restries de integridade ou novas colunas em uma tabela DROP: remoo de estruturas, como eliminar uma coluna, um ndice ou um trigger
5

Conceitos de Banco de Dados

DML
INSERT: Insero de registros UPDATE: Atualizao de registros DELETE: Eliminao de registros SELECT: Consulta sobre registros

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

DCL
Em geral relacionado a definio de privilgios dos usurios do banco de dados (usurios da aplicao em geral so diferentes dos usurios do banco de dados)
GRANT: concesso de privilgios sobre tabelas, vises e bancos de dados (criao de estruturas) REVOKE: revogao de privilgios dados pelo comando GRANT
7

Conceitos de Banco de Dados

Transaction Control
COMMIT: efetiva uma alterao no banco de dados ROLLBACK: desfaz uma alterao antes de ser efetivada no banco SAVE POINT: permite uma subdiviso lgica de uma transao longa

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

Tipos de Dados
Os SGBDs comerciais em geral oferecem os tipos de dados bsicos mais comuns como nmeros inteiros, reais, monetrios, data, hora, caracteres, textos, arrays, armazenar arquivos binrios, etc. Existem ainda implementaes prprias de outros tipos de dados por exemplo, tipos de dados geogrficos como crculo, polgono. E alguns SGBDs permitem ainda que o usurio crie seu prprio tipo de dado para ser utilizado nas definies de suas colunas.
9

Conceitos de Banco de Dados

Tipos de Dados - PostGres


Numricos Monetrios Caracteres Data/Hora Outros Varchar(n) Timestamp Boolean Char(n) Time Bytea Text Date

Integer Money Bigint Numeric(p,q) Serial BigSerial

10

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

Tipos de Dados - Oracle


Numricos Caracteres Data/Hora Outros

Number(p,q) Varchar2(n) Timestamp BLOB BFILE NVarchar2(n) Date XMLType Char(n)

11

Conceitos de Banco de Dados

Tipos de Dados - MySQL


Numricos Integer SmallInt Decimal Numeric Float Real Caracteres Char(n) Varchar(n) Text Data/Hora Outros Datetime BLOB Date Timestamp Time Year
12

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

Tipos de Dados SQL Server 2000


Numricos Caracteres Data/Hora Outros Datetime Bit SmallDate Cursor Time Table BLOB Money SmallMoney
13

Decimal(n,p) Char(n) Numeric(n,p) Varchar(n) Float(n) Real Int Bigint

Conceitos de Banco de Dados

DDL Create Table

14

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

DDL Create Table


nomeTabela = Identificador nico para a tabela seguindo as regras de nomes definidas por cada SGBD. Alguns SGBDs que trabalham com o conceito de SCHEMAS, permitem tabelas com o mesmo nome desde que estejam em SCHEMAS diferentes nomeColuna = Identificador nico para a coluna dentro daquela tabela, porm tabelas diferentes podem ter o mesmo nome para a coluna

15

Conceitos de Banco de Dados

DDL Create Table


Tamanho = definio opcional pois depende do tipo de dados informado: Ex: tipo inteiro no precisa definir o tamanho, j o varchar em geral necessrio apesar de existir bancos que no obriguem Default value = seta um valor padro caso no seja informado nenhum valor em um comando de insero
16

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

DDL Create Tabela


Restries
[NOT] NULL: indica se a coluna pode receber valores nulos ou no. O default NULL. UNIQUE: indica que a coluna ou combinao de colunas no podem ter valores repetidos PRIMARY KEY: indica que a coluna ou combinao de colunas forma a chave primria FOREIGN KEY: indica que a coluna referencia uma coluna que faz parte da chave primria em outra tabela CHECK: no permite que valores que violem a condio estabelecida sejam armazenados na coluna
17

Conceitos de Banco de Dados

DDL Create Table

18

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

DDL Create Table

19

Conceitos de Banco de Dados

DDL
As restries no precisam ser criadas todas juntamente com o comando de CREATE TABLE, elas podem ser adicionadas depois atravs do comando ALTER TABLE o que se constitui at uma boa prtica de projeto j que dessa maneira os cdigos de criao de tabela ficam mais limpos e ainda colocamos os nomes padronizados em cada restrio. O que se coloca em geral no CREATE TABLE so as restries de NOT NULL e valores DEFAULT. Novos campos tambm pode ser adicionados atravs do ALTER TABLE.
20

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

Alterando e adicionando colunas


Adicionar nova coluna Alterando valor default de uma coluna Alterando o tipo de dados de uma coluna Alterando para obrigatoriedade do campo

21

Conceitos de Banco de Dados

Algumas observaes
Ao se alterar o tipo de dados de uma coluna o novo tipo tem que conter o tipo anterior. Ex: Voc no conseguiria mudar de varchar para integer pois existem caracteres alfanumricos armazenados. Quando se muda a obrigatoriedade de uma coluna de NULL para NOT NULL nenhuma tupla pode conter valores nulos para esta coluna seno a mudana no ser permitida.
22

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

Removendo e alterando colunas


Removendo coluna da tabela Retirando valores default Retirando obrigatoriedade do campo Alterando o nome da coluna Alterando o nome da tabela

23

Conceitos de Banco de Dados

UNIQUE Constraint
Como dito anteriormente, quando definido uma restrio UNIQUE para um campo ou conjunto de campos, significa que os valores daquele campo ou o conjunto de valores dos campos ao MESMO TEMPO no podem ser repetidos. Alguns bancos de dados criam ndices automaticamente para os campos que pertencem a essa restrio por normalmente serem alvos de pesquisas e comparaes

24

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

UNIQUE Constraint
Adicionando uma constraint UNIQUE

Removendo uma constraint UNIQUE

25

Conceitos de Banco de Dados

PRIMARY KEY Constraint


Definir a chave primria de uma tabela

Eliminando a definio da chave primria

26

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

PRIMARY KEY Constraint


A maioria dos bancos de dados comerciais criam automaticamente ndices para os campos que compem a chave primria. J que so campos comuns de pesquisa, so chaves estrangeiras em outras tabelas e so clusulas comuns para realizar joins

27

Conceitos de Banco de Dados

FOREIGN KEY
Quando criado uma chave estrangeira em uma tabela alguns detalhes so vistos. O que fazer quando a coluna que ela referencia na tabela-pai alterado o seu valor ou ainda, o registro apagado? Como isto propagado para as tabelas onde existem chaves estrangeiras referenciando esta tabela-pai?
28

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

FOREIGN KEY
SET NULL Quando a coluna do registro que referenciado em outra tabela alterada ou apagada, os registros que usam esta coluna como chave estrangeira, tem os valores para a coluna setados para NULL

29

Conceitos de Banco de Dados

FOREIGN KEY SET NULL

Se o Departamento Financeiro for apagado da primeira tabela o que acontecer? Se o Departamento Pessoal tiver seu cdigo alterado de 3 para 5 o que acontecer?

30

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

FOREIGN KEY
NO ACTION o valor padro quando no
definido o comportamento. No deixa apagar ou atualizar um registro se ele estiver sendo referenciado em outras tabelas. A diferena pro RESTRICT que a checagem feita no final da transao.

31

Conceitos de Banco de Dados

FOREIGN KEY NO ACTION

Se o Departamento de Produo for apagado da tabela departamento o que acontecer? Se o Departamento Pessoal for apagado da tabela departamento o que acontecer?

32

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

FOREIGN KEY
RESTRICT Antes de qualquer operao da transao ser realizada, no possvel apagar ou atualizar um registro que tenha uma coluna sendo referenciada em outra tabela.

33

Conceitos de Banco de Dados

FOREIGN KEY RESTRICT

Se o Departamento de Produo tiver sua chave alterada o que acontecer? Se a chave do Departamento Pessoal for alterada da tabela departamento o que acontecer?

34

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

FOREIGN KEY
CASCADE Qualquer atualizao ou deleo
de um registro que tenha alguma coluna referenciada por outros registros em outras tabelas propagada. No caso da atualizao, o valor da coluna alterado, no caso da deleo o registro que referencia essa coluna tambm apagado

35

Conceitos de Banco de Dados

FOREIGN KEY CASCADE

Se o Departamento Financeiro for apagado da tabela departamento o que acontecer? Se o Departamento Pessoal tiver sua chave alterada na tabela departamento o que acontecer?

36

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

FOREIGN KEY
SET DEFAULT Quando ocorre alguma mudana
ou deleo em uma coluna em um registro que referenciado em outros registros de outras tabelas, o registro que possui a chave estrangeira tem o valor setado para um valor default que foi definido, porm, se esse valor default no existir na tabela pai a operao de atualizao/deleo abortada

37

Conceitos de Banco de Dados

FOREIGN KEY SET DEFAULT

Se o Departamento de Qualidade for apagado da tabela departamento o que acontecer? Se o Departamento de RH for apagado da tabela departamento o que acontecer?

38

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

CHECK
A restrio de checagem, adicionada para verificar em geral alguma regra de negcio. Ex: Sexo s pode ser M ou F. O salrio de um empregado no pode ser menor que R$ 450,00

Tirando as restries de checagem

39

Conceitos de Banco de Dados

CHECK

Se o salrio do empregado de cdigo 1 for alterado para 300,00 o que ir acontecer? Se for inserido um novo empregado e a coluna sexo tentar entrar com o valor Masculino o que acontecer?
40

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

Desabilitando Restries
Em alguns bancos de dados comerciais como o Oracle, possvel desabilitar temporariamente uma constraint para permitir por exemplo uma entrada de uma grande massa de dados de uma vez e evitar que seja verifica a restrio para cada nova linha inserida

41

Conceitos de Banco de Dados

Desabilitando Restries - Oracle


Use a clusula DISABLE do comando ALTER TABLE para desativar uma constraint Use a opo CASCADE para desativar constraints dependentes

42

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

Desabilitando Restries SQL Server 2000


Use a clusula NOCHECK do comando ALTER TABLE para desativar uma constraint e CHECK para reativ-la

43

Conceitos de Banco de Dados

Desabilitando Restries MySQL 5.0


O comando retira as restries sobre todas as chaves estrangeiras do BD que est ativo. Na maioria das vezes para conseguir realizar o restore sem ter que ficar verificando todas as chaves

44

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

Segurana
A maioria dos bancos de dados trabalham com o conceito de privilgios dos usurios do banco sobre os objetos do banco, como tabelas, stored procedures, vises, etc. Esses privilgios esto ligados as operaes que estes usurios do BD podem fazer em tabelas por exemplo, como fazer SELECT, INSERT, UPDATE porm no fazer DELETE.
45

Conceitos de Banco de Dados

Criao de Usurios
Grande parte dos bancos de dados comerciais utilizam sintaxes iguais ou parecidas com as apresentadas para o Oracle e Postgres

46

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

Criao de Usurios
No SQL Server alm do conceito de usurio do banco de dados necessrio adicionar antes de mais nada um login para se logar na instncia do SQL Server que inclusive pode ser at mesmo o usurio do sistema operacional. Na criao do usurio propriamente dito, deve ser associado a algum login j existente

47

Conceitos de Banco de Dados

Privilgios
Os usurios criados vem com permisses padro que em geral no o permitem nem mesmo acessar bancos de dados que ele no seja proprietrio. Por isto, necessrio atravs do comando GRANT definir os privilgios deste novo usurio

48

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

GRANT

49

Conceitos de Banco de Dados

GRANT
ALL Permite ao usurio ter todas as permisses possveis sobre o objeto em questo

Na primeira opo, por exemplo, o usurio luizfelipe tem privilgio total sobre a tabela empregado o que permite que ele possa fazer SELECTs, INSERTs, UPDATEs, DELETE, criar chaves estrangeiras e triggers para esta tabela
50

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

GRANT
WITH GRANT OPTION O usurio que receber privilgios com esta opo no final tem condies de tambm definir privilgios para outros usurios porm no seu mesmo nvel de acesso. Ele se transforma em um usurio administrador em uma analogia simples

51

Conceitos de Banco de Dados

GRANT
Privilgios mais comuns sobre tabelas:
SELECT
Permite selecionar qualquer coluna da tabela ou viso especificada

INSERT
Permite inserir uma nova linha na tabela especificada

UPDATE
Permite atualizar qualquer coluna da tabela especificada

DELETE
Permite apagar linhas da tabela especificada

52

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

GRANT

53

Conceitos de Banco de Dados

Role
Agrupamento de usurios com o mesmo perfil Usurios assumem um papel dentro do sistema Os privilgios so concedidos a Role e no ao usurio, ficando a cargo dele somente escolher a qual Rola ele ir pertencer
54

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

Role

55

Conceitos de Banco de Dados

Revoke
Possui a mesma sintaxe do comando GRANT, porm, o intuito ao invs de definir privilgios, retirar os privilgios existentes para determinado usurio, role ou grupo

56

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Conceitos de Banco de Dados

Revoke

57