Você está na página 1de 18

O que é um Banco de Dados?

“Um Banco de Dados (BD) é simplesmente um conjunto de informações armazenadas de


forma organizada e estruturada”.

Exemplos de Bancos de Dados.


-> Lista telefônica
-> Agenda de contatos
-> Cadastro de usuários de um sistema
-> Lista de chamada de alunos
Antes do surgimento dos Bancos de Dados eletrônicos e dos SGBD as empresas mantinham
todas as suas informações em sistemas de arquivo de papel. Esses sistemas eram falhos (os
papeis poderiam ser arquivados em pastas erradas), inseguros (os papeis ou ate mesmo as
pastas poderiam ser perdidas, raras vezes existia controles de retiradas de pastas, e
monousuários ( quando um usuário retirava uma pasta do arquivo somente ele tinha acesso
aquelas informações)... Os primeiros banco de dados eletrônicos surgiram no final da década
de 60. Esses bancos eram compostos por arquivos muito simples (textos ordenados), todas as
informações de cada registro eram dispostas em uma única linha e separadas por um
caractere especifico (Piper-Line (|), ou virgula (,)), não existia um padrão de leitura das
informações desses BD (e consequentemente SGBDs), o acesso a esse BD era de somente
um único usuário ou processo por vez e não possuíam controles ou logs.
O que é SGBD?
No inicio os Banco de Dados eram manipulados diretamente pelos programas. Isso era muito
ruim, pois além de limitar a quantidade de acessos a informação e muitas vezes interferir na
própria integridade do BD, qualquer alteração na infraestrutura do banco requeria a criação de
muitas linhas de programação.Atualmente existem SGBDs pagos e gratuitos (“free”)de
excelente qualidade.O termo SGBD (Sistema de Gestão de Banco de Dados) aplica-se a todo
tipo de programa capaz de criar um banco de dados, acessar as informações contidas nele,
alterar a infraestrutura das tabelas, incluir novas informações nos registros dessas tabelas e
excluir informações, registros ou até mesmo a tabela desses bancos. Os primeiros SGBDs
surgiram na década de 70 e trouxeram com principal vantagem o fato de permitirem que
diversos programas utilizassem as mesmas base de dados.
Um sistema de gerenciamento de banco de dados implica a criação e manutenção de bases de
dados, elimina a necessidade de especificação de definição de dados, age como interface
entre os programas de aplicação e os ficheiros de dados físicos e separa as visões lógica e de
concepção dos dados. Assim sendo, são basicamente três os componentes de um SGBD:
• Linguagem de definição de dados
– Especifica conteúdos, estrutura a base de dados e define os elementos de
dados;
• Linguagem de manipulação de dados
– Para poder alterar os dados na base;
• Dicionário de dados
– Guarde definições de elementos de dados e respectivas características –
descreve os dados, quem os acede, etc.
Os SGBD trabalham com basicamente quatro modelos de armazenamento de informações nos
banco de dados. São eles:

– Relacional;
– Hierárquico;
– Em rede;
– Orientado a objetos;
Uma breve história sobre BD...
Durante a primeira metade da década de 70, surgiram vários bancos de dados eletrônicos e as
grandes empresas se empenharam cada vez mais em aprimorar o acesso a essa ferramenta.
No inicio da segunda metade dessa década surge a linguagem SQL como resultado de uma
estudo de Phd Edgar Frank Codd (E.F. Codd) para o laboratório de pesquisas da IBM em San
José, Califórnia. Os primeiros aplicativos comerciais a usarem o SQL como linguagem surgem
no final da década de 70. Na época existiam vários outros padrões de linguagem comercias
usadas pelos SGBDs, mas o principal diferencial do SQL era que ele permitia trabalhar com
bancos de dados relacionais. O sucesso do SQL chamou a atenção da ANSI (American
National Standarts Institute) que procurava uma linguagem para definir como padrão dos
Banco de Dados. Em 1982, foi lançada a primeira versão padronizada do SQL

O que é SQL?
• A acrônico SQL significa:

Structured Query Language ou Linguagem de Consulta Estruturada


A primeira versão de Linguagem lançada pela ANSI ficou conhecida como SQL-1
Sua primeira revisão foi oficializada lançada em 1992 e ficou conhecida como SQL-92
Posteriormente ela foi revisada novamente em 1999 (SQL:1999) e 2003 (SQL:2003 ou
simplesmente SQL-3)
Atualmente os principais SGBD utilizam o SQL como linguagem base para seu
funcionamento.
“A linguagem SQL tem papel muito importante nos SGDBs atuais, podendo ter diversos
enfoques:
Linguagem de Manipulação de Dados ou DML(Data Manipulation Language): A
DML é um subconjunto da linguagem SQL, utilizada para Selecionar(SELECT),
Inserir(INSERT), Atualizar(UPDATE) e Apagar(DELETE).
Linguagem de Definição de Dados ou DDL(Data Definition Language): A DDL
permite ao usuário a manipulação de tabelas e elementos associados, tipo chave
primária e chaves estrangeira, índices, etc. Os principais comandos são CREATE,
DROP, ALTER(em algumas situações).
Linguagem de Controle de Dados ou DCL (Data Control Language): A DCL controla
os aspectos destinados a autorização de dados e licenças de usuários para
manipulação de dados dentro do BD.Alguns comandos comuns são GRANT(dá
privilégios para usuários), REVOKE (revoga privilégios de usuários), COMMIT(em
resumo grava dados no BD) e ROLLBACK(descarta dados existentes desde o último
COMMIT).
Linguagem de Consultas de Dados ou DQL (Data Query Language): embora na
DQL exista somente um comando(SELECT) é o mais utilizado, principalmente para
consultas parametrizadas. Lembre que o SELECT também é considerado um comanda
DML.
Fonte: Entedendo a Linguagem SQL - Parte I http://www.devmedia.com.br/entedendo-a-
linguagem-sql-parte-i/7775#ixzz22ms17GGS

Planejar um banco de dados? Pra quê?

Porém muitas vezes ele se esquece de um ponto muito importante para a maioria dos
sistemas...
“A função básica de um sistema é receber informações, armazena-las e/ou manipula-las de
forma a que o usuário tenha sempre acesso a um resultado final satisfatório.”
Alguns objetivos importantes no planejamento do banco de dados:
• Integridade
• Performance
• Escalabilidade
• Segurança
• Manutenção das tabelas
• Manutenção dos dados

Integridade

Toda vez que os dados de um BD são alterados existe a possibilidade da integridade lógica ser
afetada. A integridade de dados em SGDBs é uma combinação de:

Integridade semântica: os dados de uma coluna sempre serão do tipo de dado definido na
criação da coluna.
Integridade de entidade: cada linha de uma tabela possui um indicador que garanta a
unicidade da mesma.
Integridade referencial: os relacionamentos lógicos entre as entidades, após sua definição,
serão forçados pelos SGDB.
Integridade de domínio: domínio é um conjunto de valores previamente definido no qual uma
coluna só poderá conter valores pertencentes a esse domínio (exemplo: Coluna idade –
Maiores de 18 anos)
Alguns exemplos:
• Um cliente pode ter seu endereço alterado e seu pedido ser enviado para outro local;
• Um produto inexistente por ser inserido acidentalmente no roll de produtos disponíveis
para comercialização;
• O preço de um produto pode ser calculado com valor inferior ao normal e ser
disponibilizado como “oferta”;
• As movimentações de retirada de um cliente podem ser processadas como crédito.

Escalabilidade

Escalabilidade é uma característica desejável na maioria dos projetos de sistema e suas


bases de dados, pois permite o crescimento ordenado e planejado do mesmo.
Para entender o conceito de escalabilidade tomemos como exemplo o banco de dados de
um sistema de transações on-line, é muito difícil dimensionarmos a quantidade transações
diárias, semanais ou mensais, e além disso, pode haver a necessidade de adicionar novos
processos ou serviços a esse sistema.Se esse sistema for projetado de forma escalar será
possível adicionar os novos serviços, redimensionar a quantidade de dados nas tabelas ou
mesmo realizar manutenções na base de dados inteira de forma transparente (sem que os
usuários percebam) e sem precisar desativar o sistema.

A escalabilidade pode ser medida de vários modos, tais como:


Carga de escalabilidade – Quando, por exemplo, num sistema distribuído é fácil expandido e
usar sua gama de recursos para acomodar todas as exigências do mesmo sendo elas pouca
ou excessiva.
Geograficamente escalável - Um sistema é geograficamente escalável quando mantém sua
utilidade e usabilidade, independentemente de como são usados os seus recursos.
Escalabilidade Administrativa - Não importa a variação de informação que diferentes
organizações necessitam compartilhar em um único sistema distribuído, este deve permanecer
fácil de ser usado e gerenciado.
Objetivos do planejamento de um BD
É verdade que banco de dados relacionais não são escalonáveis?
Os banco de dados relacionais tem limitações tanto na quantidade de atributos em suas
entidades, quanto em muitos casos de registros, por isso não são considerados escalonáveis.
Porém em muitos casos, um bom projeto de dados permite que um banco de dados relacional
haja como se fosse escalável até um certo limite
Performance
“... a nova vantagem competitiva das empresas, os bancos de dados se incluem no ativo
intangível das empresas, mais precisamente no grupo de conhecimento.”
Segundo Thomas A. Stewart, in Capital intelectual
Performance da BD ou DB tuning são técnicas utilizadas para aumentar o desempenho de um
banco de dados.
Quando maior a quantidade de dados no BD, maior a necessidade de técnicas de tuning.
Muitas ferramentas dos SGBD e até mesmo o próprio SQL são utilizados para melhorar a
performance dos BDs
(exemplo – Criação de views para consultas constantes)
Segurança - Muitas vezes os desenvolvedores de sistemas preocupam-se exclusivamente
com o acesso inicial e direto a seus sistemas e deixam os dados abertos a todos e qualquer
usuário que tenha uma senha de acesso (e não raras vezes não sendo necessário nem mesmo
essa senha).
Algumas ferramentas básicas do próprio SQL podem manter a base de dados de um programa
muito mais seguro.
Perfil de usuário – definido através de grupos de acesso durante a criação restringe o acesso
a bancos de dados não autorizados.
Validade do usuário – definido datas de validades para os usuários e rotinas de verificações
dessas datas é possível evitar acesso por pessoas não ligadas mais aquela base.
Um política clara de acesso aos sistemas permite que funcionários recém desligados tenham
seus acessos negados pelo próprio departamento pessoal
Catálogos – Os catalogos permitem definir politicas claras de acesso a determinadas
entidades e consultas ligadas a ela.
Para mais detalhes pesquisar o comando GRANT no SQL.
Criptografia – A maioria dos SGBD baseados em SQl permitem que os dados inseridos em
qualquer entidade sejam criptografados o que impede a leitura desses direto na tabela
Existem sistemas de criptografia de dados que aumentam ainda mais esse nível de segurança.
Manutenção das tabelas
Não são raros os casos aonde tabelas, views e consultas criadas no projeto inicial ou durante o
amadurecimento do sistemas passam a não ser mais usadas ou pior passam a trazer
informações redundantes ou erradas.
Sistemas de maior porte (principalmente os escalónaveis) requem constantemente
manutenção (deletar tabelas, atualizar views, transformar consultas em views, criar novos
campos, excluir campos não utilizados,...).
Para que um desenvolvedor possa fazer essa manutenção com segurança é necessário que
tanto a documentação inicial do DB quanto suas alterações estejam sempre atualizadas
Os sistemas na maioria das vezes fazem inserção de novos dados, atualização dos dados e
em alguns casos até mesmo deletam dados não necessários mais, porém, sempre focados em
uma única tupla.
Muitas vezes quando falamos em um grupo de tuplas ou até mesmo todos os registros de uma
entidade é necessário um planejamento antecipado para evitar que outros dados relacionados
não sejam perdidos durante essa manutenção.
Em alguns casos também é comum utilizarmos técnicas de DB tuning aonde deslocamos
grupos de tuplas para outra entidade reduzindo a carga nas entidades mais utilizadas.

Antes de começarmos o DB ...


Qual a diferença de DADO e Informação?
Dado é qualquer elemento identificado em sua forma bruta, por si só, não conduz a
compreensão de determinado fato ou situação.
Exemplos de dados: Marca, Modelo, Ano,... Em relação ao elemento carro
Informação é o resultado do processamento e/ou manipulação dos dados obtendo-se um
resultado quantitativo ou qualitativo.
Exemplo de informação: Carro
O que é Entidade, Atributo, Propriedade e Tupla?
O que são transações de um banco de dados?
É um conjunto de procedimentos executado no banco de dados de forma sequencial mas que
para o usuário é visto como uma única ação.
Exemplo: Uma busca em várias tabelas do banco de dados por um determinado registro e sua
exclusão sem confirmação prévia.
A integridade de uma transação depende de 4 propriedades:
Atomicidade – Consistência – Isolamento - Durabilidade
O que são transações de um banco de dados?

Atomicidade - Todas as ações que compõem a unidade de trabalho da transação devem ser
concluídas com sucesso, para que seja efetivada. Se durante a transação qualquer ação que
constitui unidade de trabalho falhar, a transação inteira deve ser desfeita (rollback). Quando
todas as ações são efetuadas com sucesso, a transação pode ser efetivada e persistida em
banco (commit).
Consistência - Todas as regras e restrições definidas no banco de dados devem ser
obedecidas. Relacionamentos por chaves estrangeiras, checagem de valores para campos
restritos ou únicos devem ser obedecidos para que uma transação possa ser completada com
sucesso.
Isolamento - Cada transação funciona completamente à parte de outras estações. Todas as
operações são parte de uma transação única. O principio é que nenhuma outra transação,
operando no mesmo sistema, possa interferir no funcionamento da transação corrente(é um
mecanismo de controle). Outras transações não podem visualizar os resultados parciais das
operações de uma transação em andamento (ainda em respeito à propriedade da
atomicidade).
Durabilidade - Significa que os resultados de uma transação são permanentes e podem ser
desfeitos somente por uma transação subseqüente.Por exemplo: todos os dados e status
relativos a uma transação devem ser armazenados num repositório permanente, não sendo
passíveis de falha por uma falha de hardware.
Essas quatro propriedades são conhecidas como ACID.
Modelos de entidade
Ao iniciarmos o planejamento de um Banco de Dados é importante termos claro qual é o tipo
de SGBD que vamos utilizar e quais os modelos de entidade permitidos por ele.
Existem vários modelos de entidade:
Modelo Tabular: Consiste em uma única tabela de matriz simples e bidimensional . Por
exemplos uma planilha eletrônica
Modelo Escalável em Rede: Consiste em um conjunto de tabelas não relacionadas (algumas
vezes inclusive me BD diferentes) que são acessadas por sistemas distribuídos
Modelo Não Relacional: Consiste em um conjunto de tabelas (ou arquivos textos) não
relacionados, as informações de uma tupla não são importadas para outras tabelas do DB
Modelo Relacional: Conhecido como MER (Modelo Entidade Relacionamento) consiste em
uma teoria matemática que permite através de um relacionamento cardinal que os dados de
duas ou mais tabelas sejam interligados e complementares entre si.
O MER é o modelo mais utilizado hoje em dia (por ser o mais utilizado na grande maioria dos
SGBDs) e será o que iremos estudar com maior ênfase
O que é um sistema de informação?
“Implementação informatizada de processos de negócios já existentes.”
Exemplo: Um sistema de informatização de uma loja digital, deve basear-se nos
conhecimentos (expertises), dos vendedores e gestores de lojas reais para identificar todas as
possíveis ações do sistema.
Modelagem
Capturar os processos de um segmento (regras de negócio) e transforma-los em um MODELO
que possa ser manipulado e/ou processado pelo computador.
Domínio - É o conjunto das regras de negócio de uma segmento (necessidade, departamento,
empresa), ou seja, todas os processos e informações necessárias para se desenvolver um
sistema.
Modelo Entidade-Relacionamento - O MER se baseia em 2 elementos principais para
otimizar o armazenamento das informações obtidas pelas regras de negócio
O que é uma entidade?
“A entidade representa um elemento do domínio da aplicação dentro do modelo”.
As entidades são a representação das informações do mundo real colocadas de forma
organizadas dentro do mundo computacional.
Exemplos: Pessoa, Carro, Fornecedor, Aluno, ...
O que é Atributo ?.
“Uma entidade pode se definida por meio de suas características”.
“Atributo é um dado associada a cada ocorrência de uma entidade ou relacionamento”.
Tipos de atributos
Monovalorado – O Atributo tem somente um valor associado a ele.
Exemplo: Data de Nascimento em relação a entidade Pessoa
Multivalorado – O Atributo pode receber vários valores.
Exemplo: Jogadores em relação a entidade Time
Produtos em relação a entidade Catalogo de
Composto – Um conjunto de atributos que da a ideia de uma única informação
Exemplo: Endereço em relação a entidade Cadastro de Clientes
Derivado – O valor do atributo é dado baseando-se em outro atributo da entidade
Exemplo: Idade que baseia-se no atributo Data de Nascimento
O que é Instância ?
“Instância é uma ocorrência de uma entidade em particular”

O que é identificador?
“Conjunto de um ou mais atributos, cujos valores identificam de maneira unívoca uma
ocorrência da entidade”
Quando realizamos uma busca entre as diversas instancias de uma entidade usando o
identificador o resultado será sempre boleano (ou existe ou não existe). O indicador também e
chamado de Chave
Domínios fortes e fracos em identificadores
Forte – Quando um dos atributos permite naturalmente a unicidade da ocorrência
Fraco – Quando nenhum dos atributos do domínio permitem a identificação de unicidade das
ocorrências
Instância de um relacionamento“Instância de um relacionamento são associações
particulares dentro de um conjunto”

Grau de relacionamento
“O grau de relacionamento indica quantos conjuntos de entidades estão envolvidos
naquele relacionamento”
• Unário
• Binário
• Ternário
• Quaternário
O que é cardinalidade?
“Cardinalidade é o número (mínimo, máximo) de ocorrências de uma entidade
relacionada a outra.”
Tipos de cardinalidades
Um – para – um (1-1)
Para cada ocorrência que houver na tabela mãe, somente poderá haver uma ocorrência
na tabela filho
Um – para – muitos (1-N)
Para cada ocorrência que houver na tabela mãe, poderão haver várias ocorrência na
tabela filho
Muitos – para – muitos (N-N)
Podem haver várias ocorrência na tabela mãe relacionadas a várias ocorrência na tabela
filho
O modelo relacional
“o modelo relacional hoje em dia e largamente utilizado no mercado por que:
1º As tecnologias envolvida nos BD Relacionais já são tecnologias experimentadas...
2º Já são tecnologias consistentes...
3º Existem diversos SGBDs voltados para BDs relacionais.
Facilitando com isso a implementação desse modelo quando vamos desenvolver aplicações
comerciais.”
Relação = Conjunto de elementos da mesma estrutura.
Estrutura de dados
“A estrutura baseada em TABELAS usadas para implementar relações (entidades ou
relacionamentos)”
Ou seja, todo projeto de implementação de um banco de dados relacional deve partir de suas
tabelas (entidades).
Tabelas“As tabelas são usadas para implementar relações (conjunto de dados) que vão
armazenar as ocorrências de entidades ou relacionamentos em um BD relacional.”

Qual a diferença entre Entidade, relação e tabela?


Entidade é um elemento do domínio na aplicação que será representada no banco de dados...
Relação é o conjunto de elementos ou ocorrências de uma entidade...
A tabela é a estrutura de dados para implementar uma relação em um banco de dados.
Grau de relação
“O grau de uma relação é o número de atributos que essa relação possui.”
Esquema de relação
“... É a estrutura de cada uma das tuplas que irá compor essa relação é definida com
base em dois elementos principais... Nome da relação e Lista de Atributos”
Chave e Superchave
“Chave: Atributo que permite identificar de maneira única uma tupla em uma relação”
“Uma SuperChave é um conjunto de um ou mais atributo que, tomando coletivamente, permite-
nos identificar unicamente uma entidade no conjunto de entidades.”
Chave candidata
“Chave candidata = Cada atributo pode ser usado como chave.”
Restrições de integridade
“As restrições de integridade são regras que devem ser sempre satisfeitas”
Estado inconsistente
Quando não se é mais possível identificar um determinado registro em uma tabela.
A inconsistência somente acontece em um banco de dados quando as regras de
inconsistência foram quebras ou alteradas de maneira equivocada.
Tipos de Restrição
UNICIDADE DE CHAVE - “É uma restrição que protege a Duplicidade da chave
candidata, não permitindo que ela possua o mesmo valor em duas tuplas diferentes.”
NULICIDADE “A chave primária não pode ter valor nulo.” “...nulo é um valor inexistente.
O valor 0 existe ... O valor espaço ‘ ‘ existe...”
INTEGRIDADE REFERENCIAL - “... refere-se ao conceito de chave estrangeira, sendo
usada para manter a consistência entre tuplas de duas relações.” “...a integridade
referencial prevê bloqueios e até restrições a alguns tipos de operações.”
INTEGRIDADE SEMÂNTICA - “As restrições da Integridade Semântica são especificadas
nas regras de negócio que acompanham o banco de dados”.

Antes de começarmos...
O padrão SQL que iremos trabalhar nessa primeira parte do curso é o padrão SQL-2003 ou
SQL-3 da ANSI.
A maioria dos SGBDs atuais utilizam esse padrão como base para suas linguagens, porém é
comum encontramos breves diferenças entre a sintaxe dessas declarações em cada um
desses SGBDs.
Caso encontre dificuldade em executar alguma das instruções consulte a documentação do
SGBD que estiver utilizando.
Criando um Banco de Dados
CREATE DATABASE
CREATE DATABASE nome
[WITH [LOCATION = ‘caminho’]
[TEMPLATE = gabarito]
[ENCODING = codificação]
nome - O nome do banco de dados a ser criado.
caminho - Um local alternativo no sistema de arquivos onde será armazenado o banco de
dados, especificado como uma cadeia de caracteres; ou DEFAULT para utilizar o local padrão.
gabarito - Nome do banco de dados a ser usado como gabarito para a criação do novo banco
de dados, ou DEFAULT para utilizar o banco de dados de gabarito padrão (template1).
codificação - Método de codificação multibyte a ser utilizado no novo banco de dados.
Especifique o nome como uma cadeia de caracteres (por exemplo, 'SQL_ASCII'), ou o número
inteiro da codificação, ou DEFAULT para utilizar a codificação padrão.
Criando um usuário
CREATE USER
CREATE USER nome_do_usuário
[WITH [ENCRYPTED | UNENCRYPTED] PASSWORD 'senha'
[CREATEDB | NOCREATEDB |
CREATEUSER | NOCREATEUSER |
IN GROUP nome_do_grupo |
VALID UNTIL 'data_hora']
nome_do_usuário - O nome do usuário.
senha - Define a senha do usuário.
Se não se planeja utilizar autenticação por senha pode-se omitir esta opção, mas o usuário não
será capaz de se conectar a um servidor autenticado por senha.
A senha pode ser definida ou alterada posteriormente através do comando ALTER USER.
ENCRYPTED ou UNENCRYPTED - Estas palavras chave controlam se a senha é armazenada
criptografada, ou não.
CREATEDB ou NOCREATEDB Estas cláusulas definem a permissão para o usuário criar
bancos de dados.
será válida para sempre
CREATE USER nome_do_usuário
[WITH [ENCRYPTED | UNENCRYPTED] PASSWORD 'senha'
[CREATEDB | NOCREATEDB |
CREATEUSER | NOCREATEUSER |
IN GROUP nome_do_grupo |
VALID UNTIL 'data_hora']
CREATEUSER ou NOCREATEUSER Estas cláusulas determinam se é permitido ou não o
usuário criar novos usuários.
nome_do_grupo - O nome do grupo onde o usuário será incluído como um novo membro.
Nomes de vários grupos podem estar presentes.
data_hora - A cláusula VALID UNTIL define uma data e hora após a qual a senha do usuário
não é mais válida. Se esta cláusula for omitida, a conta será válida para sempre
Alterando os privilégios de um usuário
ALTER USER
ALTER USER nome_do_usuário
[WITH [ENCRYPTED | UNENCRYPTED] PASSWORD 'senha'
[CREATEDB | NOCREATEDB |
CREATEUSER | NOCREATEUSER |
IN GROUP nome_do_grupo |
VALID UNTIL 'data_hora']
nome_do_usuário - O nome do usuário cujos privilégios serão alterados.
senha – nova senha do usuário
ENCRYPTED ou UNENCRYPTED – Informar esta clausula caso deseje alterar a forma de
armazenamento da senha.
CREATEDB ou NOCREATEDB – Informar esta cláusula caso deseje alterar a permissão do
usuário em criar ou não novos bancos de dados.
CREATEUSER ou NOCREATEUSER – Informar esta cláusula caso deseje alterar a permissão
do usuário em criar ou não novos usuários
ALTER USER nome_do_usuário
[WITH [ENCRYPTED | UNENCRYPTED] PASSWORD 'senha'
[CREATEDB | NOCREATEDB |
CREATEUSER | NOCREATEUSER |
IN GROUP nome_do_grupo |
VALID UNTIL 'data_hora']
nome_do_grupo - O nome do novo grupo onde o usuário será incluído como membro. Nomes
de vários grupos podem estar presentes.
data_hora – a nova data de validade do usuário.
Apagando um usuário
DROP USER
DROP USER nome_do_usuário
nome_do_usuário - O nome de um usuário existente
Criando um grupo de usuários
CREATE GROUP
CREATE GROUP nome_do_grupo
[WITH USER ‘...’, ‘...’,...]
nome_do_grupo - O nome do novo grupo onde o usuário serão inclusos como membro.
USER – O nome dos usuários já criados que a esse novo grupo.
Usuários que pertençam a outros grupos podem ser inclusos em novos grupos.
Caso a cláusula USER na seja utilizado o SQL criará um grupo sem nenhum membro.
Incluindo ou Excluindo usuários num grupo
ALTER GROUP
ALTER GROUP nome_do_grupo
[WITH ADD ‘...’, ‘...’,...]
[ DROP ‘...’, ‘...’,...]
nome_do_grupo - O nome do grupo onde o(s) usuário(s) serão inclusos ou deletados.
ADD – Cláusula para incluir novos membros a um grupo
DROP – Cláusula para excluir membros de um grupo
Excluindo um grupo
DROP GROUP
DROP GROUP nome_do_grupo
nome_do_grupo - O nome do grupo que será deletado.
Ao se deletar um grupo todos os membros do grupo são automaticamente desvinculados
desse grupo.
Existem alguns SGBDs que só permitem que o grupos vazios sejam excluidos.
Criando uma view de uma tabela
CREATE VIEW
CREATE VIEW visão nomes_de_colunas, ...,
AS SELECT consulta
visão - O nome da visão a ser criada.
nomes_de_colunas - Uma relação opcional de nomes a serem usados para as colunas da
visão. Quando fornecidos, estes nomes substituem os nomes inferidos a partir da consulta
SQL.
consulta - Uma consulta SQL que fornece as colunas e as linhas da visão.
Posteriormente iremos aprender os argumentos do comando SELECT e suas cláusulas
Qual a diferença entre uma View e uma Consulta?
A View é um comando que cria uma visão diferente de uma tabela ou conjunto de tabelas
(usando com cláusula o comando SELECT) e mantem essa visão disponível para ser usada a
qualquer momento, já a Consulta só é executada no momento e não permanece sua execução.
Excluindo um view
DROP VIEW
DROP VIEW nome_da_view
nome_da_view - O nome da view que será deletado.
Quando utilizada de forma correta as view otimizam o desempenho de um banco de dados,
porém manter views que nunca são utilizadas acabam por deixar os bancos mais lentos.
Server Host: localhost

Username: root

Password: 123456

mysql >

Criar a base de dados biblioteca.

todo comando sql deve terminar com ";" ponto e virgula.

Criar um banco de dados com o nome de bibliote usando a codificação de caracteres utf8

create database biblioteca charset utf8;

create database nomedobanco charset tipodecodificacao

Visualizando os banco de dados criados.

show databases;

sintaxe -> Maneiro como o comando é escrito.

create table (cria tabelas)

Sintaxe:

create table nomedatabela

tipodedadodoatributo (tamanhodocampo) opcoesdoatributo chaveprimaria chaveestrangeira


podesernulo auto_increment unsigned;

use biblioteca;

create table aluno

ra int(10) unsigned not null auto_increment primary key,

nome char(30) not null,

cpf int(11) not null,

endereco char(40) not null,

cidade char(25) not null,

telefone int(11) not null,

email char(20) not null


);

show tables; (mostra as tabelas).

desc aluno; (mostra a estrutura da tabela).

aluno

ra

inteiro (int)

tamanho 10

nao pode ser nulo (not null)

incrementado automaticamente (auto_increment)

nao pode ser negativo. (unsigned)

chave primaria (primary key)

, -> significa que o atributo acabou.

www.google.com.br
Server Host = localhost
Username = root
Password = 123456
Finalizar um comando em SQL usar ";" ou "\g"
Para criar em SQL usamos CREATE (estrutura)
Para deletar em SQL usamos o DROP (estrutura)
Criando um banco de dados
create database biblioteca charset utf8;
Mostrando os banco de dados criados:
show databases;
Selecionando o banco a ser usado.
USE biblioteca;
Criando Tabelas em SQL;
Sintaxe:
CREATE TABLE nomedatabela (
atributo tipodedados(tamanhodocampo) opcoesdoatributo,
atributo2 tipodedados(tamanhodocampo) opcoesdoatributo,
atributo3 tipodedados(tamanhodocampo) opcoesdoatributo,
atributo4 tipodedados(tamanhodocampo) opcoesdoatributo
);
CREATE TABLE aluno (
ra int(20) unsigned not null primary key auto_increment,
nomealuno char(40) not null,
telefone char(11) not null,
email char(40) not null,
cpf char(11) not null,
endereco char(50) not null
);
CREATE TABLE funcionario (
codigof int(20) unsigned not null primary key auto_increment,
nomefunc char(40) not null,
telefone char(11) not null,
email char(40) not null,
cpf char(11) not null,
endereco char(50) not null,
cargo char(30) not null
);
VISUALIZANDO A ESTRUTURA DA TABELA:
desc nomedatabela ou describe nomedatabela;
desc aluno;
VISUALIANDO AS TABELAS DO BANCO DE DADOS;
show tables;
telefone
11
caracter
nao pode ser nulo
ra
chave primaria
inteiro
20
não pode ser negativo (unsigned)
não ser nulo (not null)
incrementado automaticamente (auto_increment)
nomealuno
40
caracter
não pode ser nulo
use biblioteca;
Visualizando as tabelas:
show tables;
Visualizando a estrutura da tabela:
desc aluno;
desc funcionario;
desc livro;
desc emprestimo;
desc reserva;
Inserindo dados no banco:
Sintaxe do INSERT:
INSERT INTO tabela VALUES (valor1,valor2,valor3,valor4,valor5...);
CREATE TABLE aluno (
ra int(20) unsigned not null primary key auto_increment,
nomealuno char(40) not null,
telefone char(11) not null,
email char(40) not null,
cpf char(11) not null,
endereco char(50) not null);
INSERT INTO aluno VALUES (NULL,'Mane da Silva','5555-
4444','manedasilva@sumare.edu.br',1112223334,'Av. Joao Dias, 3000, Santo Amaro');
INSERT INTO aluno VALUES (NULL,'Joao da Cabecao','6666-
7777','joaocabecao@sumare.edu.br',4445553332,'Av. Santo Amaro, 335, Santo Amaro');
INSERT INTO aluno VALUES (NULL,'Chico Coco','7777-
8888','chicococo@sumare.edu.br',6667778889,'Rua do Barro, 85, Mandaqui');
Recuperando os dados no banco de dados.
Sintaxe do SELECT:
SELECT Oqueconsultar ondeconsultar opções;

* - Server selecionar todos os campos.


SELECT * FROM alunos;
Mostrando apenas os aluno com RA = 1
SELECT * FROM aluno where ra=1;
Adicionando campos em uma tabela.
ALTER TABLE ADD ra int(20) unsigned not null AFTER genero;
esc livro;
Definindo uma chave estrangeira através de relacionamento.
ALTER TABLE livro ADD CONSTRAINT fk_ra FOREIGN KEY (ra) REFERENCES aluno(ra);
CREATE TABLE funcionario (
codigof int(20) unsigned not null primary key auto_increment,
nomefunc char(40) not null,
telefone char(11) not null,
email char(40) not null,
cpf char(11) not null,
endereco char(50) not null,
cargo char(30) not null);
create table livro (
codlivro int(10) unsigned not null primary key auto_increment,
isbn int(15) not null,
auto char(30) not null,
edicao char(10),
genero char(20) not null,
ra int(20) unsigned not null );
create table reserva(
protocoloreserva int(10) unsigned not null primary key auto_increment,
datareserva DATETIME DEFAULT NULL,
dataexpreserva DATETIME DEFAULT NULL );
create table emprestimo (
protocoloemprestimo int(10) unsigned not null primary key auto_increment,
dataretirada DATETIME DEFAULT NULL,
datadevolucao DATETIME DEFAULT NULL,
quantidadelivros int(3) not null );
FORMATO DATA - DATETIME DEFAULT NULL
INSERT INTO phonebook (col_name, col_date) VALUE ('DATETIME: Auto CURDATE()',
CURDATE() )";
'YYYY-MM-DD HH:MM:SS'
ALTER TABLE livro ADD ra int(20) not null AFTER genero;
show databases; (mostra os bd)

use biblioteca; (seleciona o bd)

show tables; (mostra as tables do bd)

desc aluno;

desc funcionario;

desc livro;

desc reserva;

desc emprestimo;

CREATE TABLE aluno (

ra int(20) unsigned not null primary key auto_increment,

nomealuno char(40) not null,

telefone (11) not null,

email char(40) not null,

cpf char(11) not null,

endereco char(50) not null

);

Usando o INSERT - Sintaxe:

INSERT INTO tabela VALUES (valor1, valor2,...);

INSERT INTO aluno VALUES (NULL,'Mane da Silva','2222-


3333','manedasilva@sumare.edu.br','445556668','Av Sumare 2020, Sao Paulo, SP');

INSERT INTO aluno VALUES (NULL,'Joao Cabecao','3333-


4444','joaocabecao@sumare.edu.br','556667778',

'Rod Raposo Tavares, KM 22, Sao Paulo, SP');

INSERT INTO aluno VALUES (NULL, 'Chico Coco','7777-


8888','chicococo@sumare.edu.br','6667778889','Rua do Barro, 85, Mandaqui');

Recuperando ou Consultando dados na tabela.

SELECT - Sintaxe:

SELECT oqueprocurar FROM ondeprocurar OPÇÕES;


* -> coringa - seleciona tudo;

SELECT * FROM aluno;

(seleciona todos os campos da tabela aluno)

Aplicar filtro ao select

WHERE = Onde = permite realizar select usando filtro

SELECT * FROM aluno WHERE ra=2;

SELECT * FROM aluno WHERE nomealuno='Chico Coco' ;

OR - Permite selecinar registros distintos usando campos distinto;

SELECT * FROM aluno WHERE nomealuno='Chico Coco' OR ra=1;

ALTER TABLE livro ADD codigof int(20) unsigned not null AFTER ra;

ALTER TABLE livro ADD CONSTRAINT fk_ra FOREIGN KEY (ra) REFERENCES aluno(ra);

ALTER TABLE livro ADD CONSTRAINT fk_codigof FOREIGN KEY (codigof) REFERENCES
funcionario(codigof);

Altere a tabela livro adicionando uma constraint de nome fk_ra como chave secundaria
usando o campo da tabela livro ra referencia a tabela aluno no campo ra

FORMATO DATA - DATETIME DEFAULT NULL

INSERT INTO phonebook (col_name, col_date) VALUE ('DATETIME: Auto CURDATE()',


CURDATE() )";

'YYYY-MM-DD HH:MM:SS'

ALTER TABLE livro ADD ra int(20) not null AFTER genero;

Você também pode gostar