Linguagem sql

Disponível somente no TrabalhosFeitos
  • Páginas : 6 (1452 palavras )
  • Download(s) : 0
  • Publicado : 28 de novembro de 2012
Ler documento completo
Amostra do texto
Um projeto de SQL comentado
Apesar de não ser um fã de desenvolvimento orientado a banco de dados, à dois anos atrás trabalhei em um ensaio do TCC, em cima de um projeto sem BD.
Entreguei o projeto com alegria no último bimestre, mas descobri que a matéria de Banco de Dados II iria cobrar um banco de dados referente ao projeto anterior. Sendo esta a própria avaliação do quarto bimestre, resolvicriar um banco de dados de exemplo, usando um número razoável de recursos do SGBD, para auxiliar do “desenvolvimento” do projeto.
Como meu projeto não concebia um banco de dados, abordei um exemplo de um ponto de encontro, o qual meninos e meninas podem sentar-se em casal em uma mesa. Este bd tem a seguinte estrutura:

Depois, organizei a criação começando pela criação do DATABASE.
ps: Lembrandoque as linhas que começão com - - são comentários. ps2: O objetivo deste post, é mostrar alguns recursos do banco de dados, sendo este apenas um simples exemplo.
CREATE DATABASE
-- Banco de dados
-- Conectando com o banco template1 e usuário postgres
-- para criar o usuario e o banco de dados.
\c template1 postgres-- dropando banco de dados e objetos existentes.
DROP DATABASE IF EXISTS ponto_de_encontro;
DROP USER IF EXISTS ponto_de_encontro;

-- recriando o usuario
CREATE USER ponto_de_encontro SUPERUSER;

-- conectando com o usuario dono do banco
-- e queirá criá-lo para já entrar como dono do banco.
\c template1 ponto_de_encontro

-- criando o banco
CREATE DATABASE ponto_de_encontro;
\c ponto_de_encontro ponto_de_encontro

-- criando a linguagem plpgsql que iremos utilizar nas triggers
CREATE LANGUAGE plpgsql;
CREATEDOMAIN
Os domínios, são tipos de dados próprios que permitem extender os tipos de colunas, e a vantagem de usar domínio, é a refatoração do banco. Por exemplo, o domínio abaixo, garante que qualquer tabela que tenha uma coluna do tipo masculino_ou_feminino irá aceitar apenas as letras ‘M’, ‘m’, ‘F’, ‘f’. Se decidir por mudar para ‘masculino’ e ‘feminino’, é possível apenas trocar o domínio, e todasas colunas que fazem referência a este domínio serão compátiveis.
-- Tipo de dado para usar em pessoa
CREATE DOMAIN masculino_ou_feminino AS CHAR CHECK ( VALUE ~ '[mMfF]' );
CREATE TABLE
As tabelas são interessantes por serem criadas com várias opções default, por exemplo SERIAL PRIMARY KEY irá criar implicitamente uma sequência para o campo que receber estetipo.
-- criando a tabela pessoa que será populado por meninos e meninas
CREATE TABLE pessoas (
id SERIAL PRIMARY KEY,
nome VARCHAR,
conversando BOOLEAN DEFAULT FALSE,
sexo masculino_ou_feminino
);

-- criando as mesas do ponto de encontroCREATE TABLE mesas (
id SERIAL PRIMARY KEY,
descricao VARCHAR,
ocupada BOOLEAN DEFAULT false);

-- uma conversa é a ocasião em que estão alocando uma mesa um menino e uma menina
-- isso pode acontecer se a mesa não estiver ocupada e o menino e a menina
-- não estiveremconversando em outras mesas.
CREATE TABLE conversas (
id SERIAL PRIMARY KEY,
mesa_id INTEGER NOT NULL,
menina_id INTEGER NOT NULL,
menino_id INTEGER NOT NULL,
iniciou_em TIMESTAMP DEFAULT now(),
terminou_em TIMESTAMP,

CONSTRAINT mesa_existente...
tracking img