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



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

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

Sistemas de Banco de Dados

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Banco de Dados. Prof. Antonio

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

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

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

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

SQL Structured Query Language

Linguagem SQL Sub-linguagem DDL

Introdução ao SQL. Aécio Costa

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

O que são Bancos de Dados?

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

A linguagem SQL

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Linguagem de Consulta Estruturada SQL- DML

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

SQL. Autor: Renata Viegas

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Comandos de Manipulação

Structured Query Language (SQL)

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

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

A & F Consultoria em Sistemas e Treinamentos 2014 af.tecnoserv@gmail.com. A linguagem SQL. Autor: Hélio de Almeida Fonte: Wikipédia

EXEMPLOS DE COMANDOS NO SQL SERVER

MySQL: Controle de Acesso

SQL - Criação de Tabelas

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

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

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

SQL. Hélder Antero Amaral Nunes

EXERCÍCIOS PRÁTICOS. Banco de Dados

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

Controle de transações em SQL

Exercícios de Lógica Exercícios de Fixação 08

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

Á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:

Segurança de Acesso a Banco de Dados no MS SQL Server

A criação de utilizadores no MySQL pode passar pela utilização de dois comandos: - Create user; - Grant;

Introdução ao SQL. O que é SQL?

PostgreSQL 8.0. Diogo Biazus

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

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.

Projeto de Banco de Dados: Empresa X

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

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS

Linguagem SQL. Comandos Básicos

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

Banco de Dados. Maurício Edgar Stivanello

MySQL. Prof. César Melo. com a ajuda de vários

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

Banco de Dados. Structured Query Language SQL. Prof. Walteno Martins Parreira Jr 1.

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

1. Domínio dos Atributos

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

Principais Comandos SQL Usados no MySql

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

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Linguagem de Consulta - SQL

Administração de Usuários e Privilégios no 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

Prof. Omero, pág. 63. Banco de Dados InterBase.

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

Structured Query Language (SQL) Aula Prática

Comandos DDL. id_modulo = id_m odulo

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

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

Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak

SISTEMAS GERENCIADORES DE BANCO DE DADOS 1

Prof.: Clayton Maciel Costa

Bases de Dados 2007/2008. Aula 1. Referências

SQL (Structured Query Language)

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

Tarefa Orientada 19 Triggers

Aula 02 Modelagem de Dados. Banco de Dados. Aula 02 Modelagem de Dados. Superior /2011 Redes Computadores - Disciplina: Banco de Dados -

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

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

TRANSAÇÕES. Considerando que estes comandos fazem parte de uma TRANSAÇÃO (veremos como indicar isso):

LINX POSTOS AUTOSYSTEM

SQL (Structured Query Language)

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

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

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

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

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Introdução a Sistemas de Bancos de Dados

SQL (Structured Query Language)

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

Transcrição:

BANCO DE DADOS: SQL UERN - Universidade do Estado do Rio Grande do Norte. Departamento de Ciências da Computação. 27 de janeiro de 2010

índice 1 Introdução 2 3

Introdução SQL - Structured Query Language Linguagem de banco de dados projetada para gerenciar dados em RDBMS (relacional database management systems). Baseada na álgebra relacional e cálculo relacional. É padrão ISO desde à década de 80.

Introdução - DDL SQL - Principais funcionalidades: : Gerência objetos tais como tabelas e estruturas de índices. A maioria dos SGDB's implementam extenções proprietárias de DDL. CREATE, DROP, ALTER Exemplo:

Introdução - DML SQL - Principais funcionalidades: DML - Linguagem de Manipulação de Dados: Inserir, Atualizar ou Apagar dados. INSERT, UPDATE, DELETE Exemplo:

Introdução - DQL SQL - Principais funcionalidades: DQL - Linguagem de Consulta (Query) de Dados: É a parte mais utilizada do SQL e só possui um único comando! SELECT Exemplo:

Introdução - DCL SQL - Principais funcionalidades: DCL - Linguagem de Controle de Dados: Autoriza usuários ou grupos para acessar e manipular os dados. GRANT, REVOKE Exemplo:

Introdução - DTL SQL - Principais funcionalidades: DTL - Linguagem de Transação de Dados: Permite execução de vários comandos SQL como sendo um só. BEGIN TRANSACTION (ou start transaction), COMMIT, ROLLBACK Exemplo:

Outline Introdução 1 Introdução 2 3

Introdução do banco de dados são completamente separados dos usuários do sistema operacional no qual o banco de dados está rodando. Existe um SUPER USUÁRIO (ou root), cujo ID é 1, que no POSTGRESQL tem o mesmo nome do usuário que está rodando o servidor de BD, geralmente é o usuário 'postgres', e que tem acesso total ao banco de dados, podendo criar outros usuários. O padrão SQL deixa a denição de usuários a cargo da implementação de cada SGDB. No PostgreSQL o comando é: CREATE USER

Criando no PostgreSQL CREATE USER name [ [ WITH ] option [... ] ] onde 'option' pode ser: SYSID uid [ ENCRYPTED UNENCRYPTED ] PASSWORD 'password' CREATEDB NOCREATEDB CREATEUSER NOCREATEUSER IN GROUP groupname [,...] VALID UNTIL 'abstime'

Criando no PostgreSQL Criando um usuário sem senha: CREATE USER fulano Criando um usuário com senha: CREATE USER beltrano WITH PASSWORD '123mudar' Criando um usuário cuja senha só é válida até 2010, quando o ano de 2011 chegar essa senha não mais será válida: CREATE USER ciclano WITH PASSWORD '123mudar' VALID UNTIL '2011-01-01' Criando um usuário com permissão para criar bases de dados: CREATE USER suporte WITH PASSWORD '123mudar' CREATEDB

Alterando no PostgreSQL Podemos alterar as congurações de um usuário já criado: ALTER USER name [ [ WITH ] option [... ] ] Onde 'option' pode ser: [ ENCRYPTED UNENCRYPTED ] PASSWORD 'password' CREATEDB NOCREATEDB CREATEUSER NOCREATEUSER VALID UNTIL 'abstime' Modica os privilégios globais do usuário e congurações de autenticação. Somente o super usuário pode modicar estes privilégios e a expiração da senha. comuns podem apenas mudar seu próprio password.

Alterando no PostgreSQL Renomeando usuários: ALTER USER nome RENAME TO novonome Somente o super usuário pode usar este comando. O super usuário que está atualmente conectado não pode alterar seu próprio nome, é necessário que este se conecte com outro login de super usuário para fazer isso.

Alterando no PostgreSQL Modicando congurações padrão da sessão de usuário: ALTER USER name SET parameter { TO = } { value DEFAULT } ALTER USER name RESET parameter Quando o usuário iniciar uma nova sessão, os valores setados se tornarão 'default', sobrescrevendo qualquer valor presente no arquivo: postgresql.conf (search_path, default_tablespace, lc_monetary = 'pt_br.utf-8') comuns podem mudar apenas seus próprios valores padrão de sessão. O super usuário pode mudar os valores de todo mundo.

Alterando no PostgreSQL Mudando a senha de um usuário: ALTER USER fulano WITH PASSWORD '12fulano34' Alterando a validade da senha: ALTER USER fulano VALID UNTIL 'May 4 12:00:00 2010 +1' (A senha irá expirar ao meio dia de 4 de maio de 2010, usando um 'timezone' que está 1 hora adiantad com relação ao UTC) Tornando a senha válida para sempre: ALTER USER fulano VALID UNTIL 'innity' Dando ao usuário o poder de criar outros usuários e também de criar base de dados: ALTER USER fulano CREATEUSER CREATEDB

Deletando no postgresql É possível deletar usuários do banco de dados com um único comando: DROP USER fulano Porém, se o usuário possuir alguma base de dados em seu nome é necessário que o dono da base de dados seja modicado, ou a base seja apagada, antes de apagar o usuário (ou o comando não funcionará): ALTER DATABASE fulanodb OWNER TO ciclano DROP USER fulano

Outline Introdução 1 Introdução 2 3

Introdução O SGDB pode criar várias bases de dados e gerênciar o nível de acesso que cada usuário pode ter com relação ao BD. Somente o super usuário (ou usuários com permissão de CREATEDB) podem criar base de dados. Por padrão, o criador do BD torna-se o dono a não ser que seja especicado outro usuário através da cláusula OWNER. Sintaxe: CREATE DATABASE name [ [ WITH ] [ OWNER [=] dbowner ] [ TEMPLATE [=] template ] [ ENCODING [=] encoding ] [ LC_COLLATE [=] lc_collate ] [ LC_CTYPE [=] lc_ctype ] [ TABLESPACE [=] tablespace ] [ CONNECTION LIMIT [=] connlimit ] ]

Criando Criando uma nova base de dados: CREATE DATABASE UERN Criando uma base de dados para um usuário especíco: CREATE DATABASE LOJASRN OWNER fulano

Alterando É possível alterar os atributos de bases de dados já existentes com o comando ALTER DATABASE nomedabasededados [ [ WITH ] option [... ] ] Onde 'option' pode ser: CONNECTION LIMIT connlimit

Alterando Mudando o nome do BD: ALTER DATABASE nome RENAME TO novonome Modicando o dono do BD: ALTER DATABASE UERN OWNER TO beltrano

Deletando É possível deletar uma base de dados já criada, desde que nenhum usuário esteja no momento conectado a ela. DROP DATABASE [ IF EXISTS ] name O parâmetro 'IF EXISTS' evita que sejam geradas mensagens de erro, caso o BD não exista.

Outline Introdução 1 Introdução 2 3

Introdução Espaço lógico que armazena objetos de dados:, índices, Dados, Funções, etc... Análogo aos diretórios do sistema operacional (porém schemas não podem ser aninhados). Relaciona objetos lógicos diferentes mas que estão no mesmo banco de dados. Schema 'public': Por padrão, a cada novo banco de dados criado, o mesmo é colocado no schema public automaticamente e as tabelas criadas no banco serão criadas por padrão neste schema.

Introdução Por que usar schemas? Para permitir que diferentes usuários acessem o banco de dados sem que um interra com o outro. Para organizar os objetos (tabelas, visões, etc...) em grupos lógicos, tornando-os mais facilmente gerenciáveis. Aplicações de terceiros podem ser colocadas em diferentes schemas sem que os nomes dos objetos colidam.

Introdução só podem ser criados por super usuários (usuários com permissão para criar outros usuários). Criando um schema para um usuário: CREATE SCHEMA nanceiro AUTHORIZATION fulano Por padrão, somente o dono do schema e o super usuário tem acesso ao schema. Permitindo que outro usuário tenha acesso ao schema nanceiro que pertence a fulano: GRANT USAGE ON SCHEMA nanceiro TO beltrano REVOKE USAGE ON SCHEMA nanceiro TO beltrano < Retira a permissão dada anteriormente.

Introdução Uma vez que o privilégio de acessar um determinado schema (GRANT USAGE) seja dado a um usuário, é necessário que as permissões de acesso a cada objeto do schema sejam dadas explicitamente: GRANT SELECT ON nanceiro.pagamentos TO beltrano REVOKE SELECT ON nanceiro.pagamentos FROM beltrano Neste caso foi dada permissão de leitura na tabela pagamentos do schema nanceiro ao usuário beltrano. Logo após essa permissão foi retirada.

Introdução Se desejamos que o usuário beltrano (que não é dono do schema mas tem permissão de acessa-lo) possa criar objetos (tabelas, índices, etc) no schema nanceiro, podemos dar essa permissão: GRANT CREATE ON SCHEMA nanceiro TO beltrano REVOKE CREATE ON SCHEMA nanceiro TO beltrano

Introdução É possível dar privilégios a TODOS os usuários do BD a um determinado schema, usando a palavra reservada 'PUBLIC': GRANT ALL ON SCHEMA nanceiro TO PUBLIC ALL se refere a USAGE e CREATE. No schema padrão 'public' todos os usuários tem automaticamente privilégios de USAGE e CREATE.

Deletando Se o usuário não tiver criado ainda nenhum objeto no schema: DROP SCHEMA nanceiro Caso já existam objetos criados no schema: DROP SCHEMA nanceiro CASCADE

Outline Introdução 1 Introdução 2 3

Introdução É onde os dados são logicamente armazenados no BD. Consiste de Linhas e Colunas. O número e a ordem das colunas é xado, e cada coluna tem um nome. O número de linhas é variável, isso reete a quantidade de dados armazenados na tabela.

Criando CREATE TABLE comum.estado ( id_estado integer NOT NULL, sigla char(2) NOT NULL, nome varchar(25) NOT NULL, CONSTRAINT pk_estado PRIMARY KEY (id_estado) );

BIBLIOGRAFIA http://www.postgresql.org/docs/current/static/ddl-schemas.html http://sql-info.de/postgresql/schemas.html