GBC043 - Sistemas de Banco de Dados SQL DDL e Implementação no PostgreSQL



Documentos relacionados
A Linguagem SQL. Introdução a Banco de Dados DCC 011

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

GBC043 Sistemas de Banco de Dados. Modelo Relacional (R) Ilmério Reis da Silva UFU/FACOM

SQL. Autor: Renata Viegas

A linguagem SQL

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

Linguagem SQL Sub-linguagem DDL

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

GBC043 - Sistemas de Banco de Dados SQL/DML no PostgreSQL. Ilmério Reis da Silva ilmerio@facom.ufu.br UFU/FACOM/BCC

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL - Criação de Tabelas

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Programação SQL. Introdução

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Comandos de Manipulação

Capitulo 2. Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Banco de Dados. Módulo 7 - Modelo Relacional. Definição do Esquema Relacional em SQL. modulo07.prz 1 10/09/01

Comandos DDL. id_modulo = id_m odulo

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.


SQL DDL. Frederico D. Bortoloti

BANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

Linguagem de Consulta - SQL

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Structured Query Language (SQL) Aula Prática

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha.

SQL (Structured Query Language)

SQL (Structured Query Language)

Structured Query Language (SQL)

SQL (Structured Query Language)

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

PgAdmin. O pgadmin é um software gráfico para administração do SGBD PostgreSQL disponível para Windows e UNIX.

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva -

1. Domínio dos Atributos

Structured Query Language (SQL)

BANCO DE DADOS CONCEITOS BÁSICOS

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Linguagem SQL (Parte II)

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

SQL (STRUCTUREDQUERY LANGUAGE)

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

BANCO DE DADOS Parte 4

Banco de Dados. Prof. Antonio

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Linguagem SQL. Comandos Básicos

O projeto físico do bando de dados consiste no mapeamento do projeto lógico para um DBMS real Projeto deve levar em conta fatores como:

GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

SQL Structured Query Language

ADMINISTRAÇÃO DE BANCO DE DADOS

Principal: construir uma base de dados para produção de informações sobre internações hospitalares;

Disciplina: Unidade V: Prof.: Período:

Regras de Integridade. Profa. Késsia Marchi

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

SQL (STRUCTUREDQUERY LANGUAGE)

Núcleo de Pós Graduação Pitágoras

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

Linguagem SQL Parte I

PostgreSQL. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br

SQL (Structured Query Language)

Projeto de Banco de Dados: Empresa X

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

O que são Bancos de Dados?

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

SQL Structured Query Language. SQL Linguagem de Definição de Dados. SQL Structured Query Language. SQL Structured Query Language

EXERCÍCIOS PRÁTICOS. Banco de Dados

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

Introdução ao SQL. Aécio Costa

SQL: Definição de tabelas, Modificações à Base de Dados

Linguagem de Consulta Estruturada SQL- DML

EXEMPLOS DE COMANDOS NO SQL SERVER

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de

SQL Básica. Andre Noel

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

SQL. Histórico BANCO DE DADOS. Conceito. Padrões de SQL (1) Componentes do SQL (1) Padrões de SQL (2) (DDL: CREATE TABLE, CONSTRAINTS)

Transcrição:

GBC043 - Sistemas de Banco de Dados SQL DDL e Implementação no PostgreSQL Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC

Página 2 Programa Teórico Visão Panorâmica Sistemas de Banco de Dados e Modelos de Dados Manipulação de Dados e Ferramentas de Projeto de BD Controle de concorrência e tópicos em Banco de Dados

Página 3 Prgrama Teórico/Prático - SQL Linguagem SQL Comandos de criação e eliminação de tabelas Especificação de restrições em bancos de dados Evolução de esquemas de banco de dados Comandos de inserção de tuplas em tabelas Comandos de alteração e supressão de tuplas Comandos de consulta (simples e complexos) Definição de visões Álgebra Relacional Cálculo Relacional

SQL Def. A SQL(Structured Query Language) é uma Linguagem de Consulta Estruturada declarativa para acesso a sistemas de banco de dados relacionais. OBS: como linguagem declarativa descreve o problema ao invés da solução, especificando o que deve ser feito e não como. UFU/FACOM Página 4

SQL - Histórico 1970s - SEQUEL do SYSTEM R nos laboratórios da IBM 1986 Padrão ANSI chamado SQL1 ou SQL-86 1992 SQL2 => introdução de chave estrangeira 1999 SQL3 => gatilhos; características objetorelacional(tipo LOB-Large Object); consultas recursivas, etc. 2003 - SQL-2003: mais recursos para definição de tipos (OO); SQL/XML; etc. 2008 SQL-2008: mais recursos para orientação a objetos UFU/FACOM Página 5

SQL/ DDLExemplos SGBDs UFU/FACOM Página 6

SQL Classes de Comandos Duas classes importantes de comandos: DDL: Data definition language Comandos para a definição de dados DML: Data manipulation language Comandos para a manipulação de dados DML interativa interface direta com o SGBD DML embutida utilizada em programas de aplicação UFU/FACOM Página 7

SQL-DDL Def SQL/DDL (Data Definition Language) permite ao usuário definir tabelas e elementos associados. OBS: A SQL/DDL se caracteriza por poucos comandos básicos, embora implementações comerciais tenham várias extensões. UFU/FACOM Página 8

SQL/ DDL Conceitos associados Banco de dados e Catálogo Esquema Tabela Linha Coluna Índice UFU/FACOM Página 9

SQL/ DDL Comandos CREATE Cria uma definição CREATE TABLE tab... ALTER Altera uma definição ALTER TABLE tab ADD... DROP Exclui uma definição DROP TABLE tab UFU/FACOM Página 10

SQL/ DDL Abrangência Definição de tabelas Definição de restrições de integridade Definição de índices Definição de privilégios de acesso Definição de visões UFU/FACOM Página 11

O SGBD PostgreSQL PostgreSql Um SGBD objeto-relacional. UFU/FACOM Página 12

PostgreSQL - Breve Histórico 1986-1993: Postgres / University of California at Berkeley 1995: Postgres95 (Open source) / PostgreSQL 6.0; 2005: PostgreSQL 8.0 com facilidades de instalação em Windows 2010: PostgreSQL 9.0 replicação nativa UFU/FACOM Página 13

PostgreSql - Principais Características implementa SQL92/SQL1999; herança tipos de dados funções restrições (constraints) gatilhos (triggers) regras(rules) integridade transacional UFU/FACOM Página 14

PostgreSql Criação de Banco de Dados CREATE DATABASE nome [ [ WITH ] [ OWNER [=] dono_bd ] [ TEMPLATE [=] modelo ] [ ENCODING [=] codificação ] [ TABLESPACE [=] tablespace ] ] [ CONNECTION LIMIT [=] limite_con ] ] Exemplo: CREATE DATABASE sbdx WITH OWNER bccx; UFU/FACOM Página 15

PostgreSql - Sintaxe do manual/slides Convenção UPPERCASE (maiúsculo) Palavra-chave SQL. lowercase (minúsculo) itálico Identificadores ou constantes SQL informadas pelo usuário Sintaxe completa: consultar manual PostgreSQL Nome de um bloco de sintaxe. Essa convenção é usada para indicar blocos longos de sintaxe que podem ser usados em mais de um local. http://www.postgresql.org/docs/8.4/static/sql -createtable.html (barra vertical) Separa elementos opcionais da sintaxe dentro de colchetes ou chaves. Somente um dos itens pode ser escolhido. [ ] (colchetes) Item de sintaxe opcional. Os colchetes não fazem parte do comando. { } (chaves) Item da sintaxe obrigatório. As chaves não fazem parte do comando. [,...] O item precedente pode ser repetido N vezes. A separação entre os itens é feita por uma vírgula [...] O item precedente pode ser repetido N vezes. A separação entre UFU/FACOM os itens é feita por um espaço em branco. Página 16

PostgreSql Criação de Esquemas CREATE SCHEMA schemaname [ AUTHORIZATION username ] Exemplo: CREATE SCHEMA company UFU/FACOM Página 17

PostgreSql Criação de Tabela CREATE TABLE tabela ( {coluna tipo [restricoes coluna] restricoes tabela} [,...] ) [ INHERITS (tabela pai [,...])] UFU/FACOM Página 18

PostgreSql Exemplo de Tabela CREATE TABLE tabela ({coluna tipo [restricoes coluna] restricoes tabela} [,...]) [ INHERITS (tabela pai [,...])] Exemplos de identificadores de tabela: company.employee public.employee employee UFU/FACOM Página 19

PostgreSql regras para identificadores Iniciam com letras (a-z) ou underscore (_) Caracteres subsequentes: letras, dígitos (0-9), _ Identificadores e palavras-chave não são casesensite UPDATE MY_TABLE SET A = 5; update my_table SeT a = 5; Convenção adotada Palavras-chave em maiúscula Identificadores em minúsculo UPDATE my_table SET a = 5; Identificadores com aspas Aceitam quaisquer caracteres UPDATE "my_table" SET "a" = 5; UFU/FACOM Página 20

PostgreSql regras para identificadores cont. Ao colocar aspas em um identificador ele torna-se casesensitive Identificadores sem aspas são sempre transformados em minúsculo (embora o padrão SQL defina que se transforme em maiúscula) Se você criar um esquema ou tabela usando a interface gráfica do pgadmin e, caso o identificador deste objeto não seja composto por letras minúsculas, o objeto será identificado somente por meio de aspas. Faça o teste, criando esquemas e tabelas por meio da interface gráfica e utilizando letras maiúsculas. Mais informações e referência: http://www.postgresql.org/docs/8.4/static/sql-syntax -lexical.html UFU/FACOM Página 21

PostgreSql Exemplo de Tipos CREATE TABLE tabela ({coluna tipo [restricoes coluna] restricoes tabela} [,...]) [ INHERITS (tabela pai [,...])] Exemplos de coluna tipo: nome VARCHAR(40) sexo CHAR salario DECIMAL(10, 2) UFU/FACOM Página 22

PostgreSql Outros exemplos de tipos CREATE TABLE tabela ({coluna tipo [restricoes coluna] restricoes tabela} [,...]) [ INHERITS (tabela pai [,...])] Outros tipos: INT; SMALLINT; REAL; DATE; TIME; TIMESTAMP; BOOLEAN, GEOMETRIC(POINT, LINE, etc), NETWORK ADDRES, BIT, XML, ARRAYS, COMPOSITE, OID, etc. VER DOCUMENTAÇÃO DO POSTGRES: www.postgres.org UFU/FACOM Página 23

PostgreSql Tipo Lógico UFU/FACOM Página 24

PostgreSql Tipos para números exatos UFU/FACOM Página 25

PostgreSql Tipos p/ números aproximados UFU/FACOM Página 26

PostgreSql Tipos p/ dados temporais UFU/FACOM Página 27

PostgreSql Tipos p/ cadeias de caracteres UFU/FACOM Página 28

PostgreSql Outros Tipos Existem outros tipos de dados além dos apresentados anteriormente. Consulte o manual do PostgreSQL: http://www.postgresql.org/docs/8.4/static /datatype.html Livro: Beginning databases with PostgreSQL: Matthew and Stones, 2nd ed. Apress(citado pelo Prof. Bruno) UFU/FACOM Página 29

PostgreSql Exemplo de restrições de coluna CREATE TABLE tabela ({coluna tipo [restricoes coluna] restricoes tabela} [,...]) [ INHERITS (tabela pai [,...])] [CONSTRAINT restrição] {NOT NULL NULL UNIQUE PRIMARY KEY CHECK (expressão) REFERENCES tabela [ ( coluna ) ] [ON DELETE ação ] [ ON UPDATE ação ]} [DEFERRABLE NOT DEFERRABLE ] [INITIALLY DEFERRED INITIALLY IMMEDIATE ] Exemplos de restricoes coluna: sexo CHAR CHECK (sexo IN ( M, F )) UFU/FACOM Página 30

PostgreSql DOMÍNIOS UFU/FACOM Página 31

PostgreSql CREATE DOMAIN CREATE DOMAIN name [ AS ] data_type [ DEFAULT expression ] [ constraint [... ] ] onde constraint é: [ CONSTRAINT constraint_name ] { NOT NULL NULL CHECK (expression) UFU/FACOM Página 32

PostgreSql CREATE DOMAIN- Exemplos CREATE DOMAIN sexo AS char(1) DEFAULT 'M' NOT NULL CHECK ( VALUE IN ('M', 'F')); CREATE DOMAIN data_evento AS date CONSTRAINT valida_data CHECK ( VALUE > '01/01/1900' AND VALUE > '01/01/2099'); Obs.: podemos então definir os tipos sexo ou data_evento no CREATE TABLE UFU/FACOM Página 33

PostgreSql Exemplo de restrição de tabela CREATE TABLE tabela ({coluna tipo [restricoes coluna] restricoes tabela} [,...]) [ INHERITS (tabela pai [,...])] [CONSTRAINT restrição] {UNIQUE(coluna [,...]) PRIMARY KEY(coluna [,...]) CHECK (expressão) FOREIGN KEY REFERENCES tabela [ ( coluna, [,...] ) ] [ON DELETE ação ] [ ON UPDATE ação ]} [DEFERRABLE NOT DEFERRABLE ] [INITIALLY DEFERRED INITIALLY IMMEDIATE ] Exemplo restricoes tabela: PRIMARY KEY(ssn) UFU/FACOM Página 34

PostgreSql Exemplo de criação de tabela CREATE TABLE emp ( ssn CHAR(9) NOT NULL, name VARCHAR(40), sex CHAR CHECK (sex IN ( M, F )), salary DECIMAL(10,2), mngrsalary DECIMAL(10,2), CHECK (mngrsalary > salary), PRIMARY KEY (ssn)); UFU/FACOM Página 35

PostgreSql CREATE TABLE sintaxe completa Sintaxe completa: consultar manual PostgreSQL http://www.postgresql.org/docs/8.4/static/sql -createtable.html UFU/FACOM Página 36

PostgreSql Company Database - employee CREATE TABLE employee (fname VARCHAR (15) NOT NULL, minit CHAR, lname VARCHAR (15) NOT NULL, ssn CHAR(9) NOT NULL, bdate DATE, address VARCHAR(30), sex CHAR CHECK (sex IN ( M, F )), salary DECIMAL(10,2), superssn CHAR(9), dno INT NOT NULL, PRIMARY KEY (ssn)); CREATE TABLE department (dname varchar(15) not null, dnumber int not null, mgrssn char(9), mgrstartdate date, PRIMARY KEY (dnumber) ); UFU/FACOM Página 37

PostgreSql Company Database - outras CREATE TABLE dependent (essn char (9) not null, dependent_name varchar (30) not null, sex char, bdate date, relationship varchar(15), PRIMARY KEY (essn, dependent_name) ); CREATE TABLE dept_locations (dnumber int not null, dlocation varchar(15)); CREATE TABLE project (pname varchar(20), pnumber int not null, plocation varchar(15), dnum int, PRIMARY KEY (pnumber)) CREATE TABLE works_on (essn char(9) not null, pno int not null, hours decimal(4,2)); UFU/FACOM Página 38

PostgreSql DROP TABLE DROP TABLE Exclui uma tabela existente de um banco de dados. Não pode ser excluída a tabela que possui alguma referência. Neste caso, deve-se primeiro excluir a tabela que possui algum campo que a está referenciando e depois excluir a tabela inicial. DROP TABLE <nome da tabela> Exemplo: /* Apaga tabela Departamento */ DROP TABLE Departamento; UFU/FACOM Página 39

PostgreSql ALTER TABLE ALTER TABLE Altera as definições de campos e de restrições. ALTER TABLE <nome da tabela> ADD <definição de Coluna> ADD <Restrição de integridade> ALTER <definição de Coluna> ALTER <definição de Coluna> DEFAULT <default-value> ALTER <definição de Coluna> [ NOT ] NULL DROP <definição de Coluna> DROP CONSTRAINT <nome da restrição> RENAME <novo nome> RENAME <Atributo> TO <novo atributo> Onde <definição de coluna> pode ser: <Nome Atributo> <Tipo de Dado> [NULL ] [ DEFAULT default-value ] UFU/FACOM Página 40

PostgreSql Company Database Alter table ALTER TABLE employee ADD CONSTRAINT emp_superssn FOREIGN KEY (superssn) REFERENCES employee(ssn) DEFERRABLE ALTER TABLE employee ADD CONSTRAINT emp_dno FOREIGN KEY (dno) REFERENCES department(dnumber) DEFERRABLE; ALTER TABLE department ADD CONSTRAINT dept_mgrssn FOREIGN KEY (mgrssn) REFERENCES employee(ssn) DEFERRABLE; ALTER TABLE dependent ADD CONSTRAINT depe_essn FOREIGN KEY(essn) REFERENCES employee(ssn); UFU/FACOM Página 41

PostgreSql Company Database Alter table 2 ALTER TABLE dept_locations ADD CONSTRAINT loc_dnumber FOREIGN KEY (dnumber) REFERENCES department(dnumber) ALTER TABLE project ADD CONSTRAINT proj_dnum FOREIGN KEY (dnum) REFERENCES department(dnumber) ALTER TABLE works_on ADD CONSTRAINT w_essn FOREIGN KEY (essn) REFERENCES employee(ssn), ALTER TABLE works_on ADD CONSTRAINT w_pno FOREIGN KEY (pno) REFERENCES project(pnumber) UFU/FACOM Página 42

PostgreSql Objetivos da Criação de Índices OBJETIVOS: Restrições de integridade: chaves Desempenho: atributos frequentemente usados em comparações da cláusula WHERE) CREATE [UNIQUE] INDEX nome_do_indice ON tabela [ USING metodo_de_acesso ] ( coluna [ nome_operador ] [,...] ) [ WHERE predicado ] UFU/FACOM Página 43

PostgreSql sintaxe de criação de índices CREATE [UNIQUE] INDEX nome_do_indice ON tabela [USING metodo_de_acesso ] (coluna [nome_operador] [,...] ) [WHERE predicado ] metodo_de_acesso: BTREE; RTREE; HASH; GIST; BTREE: para operadores <,<=,=,>=,> RTREE: para operadores espaciais, por exemplo, left of HASH: para operador de igualdade (=) GIST: operadores genéricos entre classes nome_operador: operador usado na comparação, por exemplo, valor absoluto em BTREE predicado: usado para índices parciais (seleção da tabela) UFU/FACOM Página 44

PostgreSql exemplos de criação de índices EXEMPLOS: CREATE INDEX ind_ename ON employee (fname, minit, lname) CREATE UNIQUE INDEX ind_pname ON project (pname) OBS: antes de implementar um BD em nosso SGBD, vamos discutir alguns detalhes do servidor PostgreSQL UFU/FACOM Página 45

PostgreSql - Arquitetura Cliente/Servidor Servidor - processo postmaster acessa arquivos aceita conexões cria canal direto cliente/servidor Cliente ferramente textual, por exemplo, psql aplicação gráfica, por exemplo, pgadmin servidor web, por exemplo, apache rodando phpadmin UFU/FACOM Página 46

PostgreSql Criando o Ambiente no Servidor Superusuário, geralmente o postgres Criando um Cluster de BD: [postgres]$ initdb -D <diretório> Configurando: postgresql.conf : geral, como número de conexões pg_hba.conf : métodos de autenticação de conexões pg_ident.conf : mapeamento de ids de usuários do SO Colocando o SGBD, que gerencia um Cluster de BD, no ar [postgres]$ pg_ctl start -l <arquivo_log> -D <diretório> UFU/FACOM Página 47

PostgreSql Criando um usuário Criando um usuário CREATE USER nome [ [ WITH ] opções [... ] ] Conexão via psql: [postgres]$ psql template1 Exemplo: template1 => CREATE USER sbdgx template1 => PASSWORD pw.x.sbd ; UFU/FACOM Página 48

PostgreSql Criando um banco de dados Exemplo de um banco de dados criado para um usuário: template1 => CREATE DATABASE sbdx template1 => OWNER bccx; UFU/FACOM Página 49

PostgreSql Controle de acesso - Grant GRANT lista_privilegios ON tipo_objeto lista_objetos TO lista_usuarios Exemplo: GRANT SELECT, DELETE ON employee TO joao UFU/FACOM Página 50

PostgreSql Concedendo Privilégios Privilégios de acordo com o objeto: TABLE: { { SELECT INSERT UPDATE DELETE RULE REFERENCES TRIGGER } [,...] ALL [PRIVILEGES] } DATABASE: { { CREATE TEMPORARY TEMP } [,...] ALL [ PRIVILEGES] } FUNCTION: { EXECUTE ALL [PRIVILEGES] } LANGUAGE: { USAGE ALL [ PRIVILEGES ] } SCHEMA: {{CREATE USAGE} [,...] ALL [PRIVILEGES] } UFU/FACOM Página 51

Bibliografia/Exercícios Ver roteiros de aulas de laboratório [EN] Capítulo 4, 5 [RG] Capítulo 5 [SK] Capítulo 4, 5 e 6 Sugestão de leitura: Lima, A L G, Padrão SQL e sua Evolução, http://www.ic.unicamp.br/~geovane/mo410-071/ch05-padraosql-art.pdf, acesso em setembro/2008 Sugestão de consulta: Manuais do PostgreSQL UFU/FACOM Página 52

FIM SQL DDL e PostgreSQL FIM SQL DDL e PostgreSQL UFU/FACOM Página 53