sql - introdução
TRANSCRIPT
SQL
Apresentação e objetivo
Nessa unidade vamos conversar sobre:• Conceitos fundamentais de Banco de
Dados. • Arquitetura dos sistemas gerenciadores
de banco de dados. • Características típicas de um SGBD. • Modelos de Banco de dados: conceitual,
lógico e físico. • Modelo entidade-relacionamento. • Normalização no modelo de dados
relacional. • Linguagens de consulta.
Objetivo
Objetivo geral do Modulo:
Conhecer os conceitos de modelagem e armazenamento em banco de dados.
Introdução
Um sistema é feito para aceitar entrada de dados, realizar processamento e gerar saída das informações processadas. Com o tempo, verificou-se a necessidade de armazenar as informações geradas pelos programas de computadores.
Introdução
Em junho de 1970, E. F. Codd, da IBM publicou um artigo intitulado “A Relational Model of Data for Large Shared Data Banks” (Um Modelo Relacional de Dados para Grandes Bancos de Dados Compartilhados).
Ele estabeleceu princípios sobre gerência de banco de dados. Essa foi a base para a criação de uma linguagem-padrão para manipular informações em Banco de Dados Relacional. Essa linguagem é a SQL (Structured Query Language).
Introdução
Duas entidades, a ANSI (American National Standards Institute) e a ISO (International Standards Organization), vêm ao longo do tempo padronizando a linguagem SQL.
O primeiro padrão data de 1986 – SQL-86 e em 1989, surge uma nova versão SQL-89, essa versão é utilizada pela maioria dos bancos atuais.
Em 1992, houve uma nova versão, esse versão define as regras básicas para os bancos de dados relacionais.
Em 1999, surge a SQL-99, conhecida como SQL3, que define um modelo de banco de dados objeto-relacional.
O que é SQL
SQL (Strutctured Query Language) é um conjunto de comandos de manipulação de banco de dados.
SQL não é uma linguagem de programação autônoma, pois é necessário utilizar uma linguagem de programação tradicional (C, Java, Pascal, COBOL, etc) e embutir comandos SQL para manipular os dados.
O que é SQL
A linguagem SQL é dividida nos seguintes componentes:
Data Definition Language (DDL)
Data Manipulation Language (DML)
Data Query Language (DQL)
Data Control Language (DCL)
O que é SQL
A linguagem SQL é dividida nos seguintes componentes:
Data Definition Language (DDL): permite a criação dos componentes do banco de dados, como tabelas, índices etc.
CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, ALTER INDEX, DROP INDEX.
O que é SQL
A linguagem SQL é dividida nos seguintes componentes:
Data Manipulation Language (DML): permite a manipulação dos dados armazenados no banco de dados.
INSERT, DELETE, UPDATE.
O que é SQL
A linguagem SQL é dividida nos seguintes componentes:
Data Query Language (DQL): permite extrair dados do banco de dados.
SELECT.
O que é SQL
A linguagem SQL é dividida nos seguintes componentes:
Data Control Language (DCL): provê a segurança interna do banco de dados.
CRETATE USER, ALTER USER, GRAND, REVOKE, CREATE SCHEMA.
Com advento da SQL-99, a linguagem passou a incorporar comandos procedurais (BEGIN, IF, funções, procedimentos). Por exemplo, PL/SQL da Oracle.
Projetando Banco de Dados
O projeto do banco de dados está para o sistema da mesma forma que a estrutura do prédio está para o edifício.
O processo de Análise dos Dados pressupõe três fases distintas e integradas:
Modelo Conceitual de Dados
Desenho do Banco de Dados
Criação do Banco de Dados
Banco de Dados
Um banco de dados é um conjunto coerente e lógico de dados relacionados que possuem significância. Esses dados representam aspectos do mundo real.
Há cinco tipos de banco de dados: Hierárquico, Rede, Relacional, Objeto-Relacional, Objeto.
Banco de Dados
Hierárquico: Hierárquico,
Um gerenciador desse tipo representa dados como uma estrutura de árvore, composta de uma hierarquia de registro de dados.Por exemplo: em uma dada base de dados comercial, uma encomenda (i.e. registro) é possuída por um único cliente.
Banco de Dados
Hierárquico: Rede,
Representa os dados como registros vinculados uns aos outros, formando conjuntos comuns de dados.Pode-se entender o modelo de rede como uma generalização do modelo hierárquico.
Banco de Dados
Hierárquico: Relacional,
Representa os dados como uma simples coleção de linhas e colunas em tabelas bidimensionais.
Sistema Gerencidador de Banco de Dados
Um gerenciador de banco de dados (DBMS – Database Management System) é um coleção de programas que permite criar estruturas, manter dados e gerenciar as transações efetuadas em tabelas.
Sistema Gerencidador de Banco de Dados
Principais características de um SGBD:
Controle de redundância
Compartilhamento de dados
Controle de acesso
Esquematização
Backup
TabelaUma tabela pode ser entendida como um conjunto de linhas e colunas.
É possível armazenar dados em uma ou várias tabelas, dependendo do que e como desejamos as informações.
Abordagem RelacionalA abordagem relacional é a utilização de conceitos de Entidade e Relacionamentos para criar as estruturas que irão compor o banco de dados.
Nessa fase é importante saber quais informações são importantes para o sistema e o que deve ser armazenado. A essa representação dá-se o nome de Modelo de Dados.
O Modelo de Dados é composto de Entidade e Relacionamentos, daí ser conhecido como Modelo de Entidade x Relacionamento (MER).
Vantagem do MERVantagens na utilização do Modelo de Entidade x Relacionamento
Sintaxe Robusta,O modelo documenta as necessidades de informação da empresa de maneira precisa e clara.
Comunicação com usuário,Os usuários podem, com pouco esforço, entender o modelo.
Facilidade de criação,Os analistas podem criar e manter um modelo facilmente
Integração com várias aplicações,Diversos projetos podem ser inter-relacionados utilizando o modelo
de dados de cada um deles. Utilização Universal.
O modelo está vinculado ao negócio da empresa.
Objetivo da Modelagem de DadosO principal objetivo da Modelagem de Dados é desenvolver um
modelo que, contendo entidades e relacionamentos, seja capaz de representar os requerimentos das informações do negócio.
Exemplo
Como resolver esta redundância?
EntidadeUma Entidade é um agrupamento lógico de informações inter-
relacionadas necessárias para a execução das atividades do sistema.Quando transposta ao modelo físico (ao banco de dados),
chamamos a entidade de tabela.
Classificação das EntidadesAs Entidades podem ser classificadas em dois tipos:
Fundamental Contém dados básicos que são resultados ou alimentadores das
operações da empresa Associativa
É formada pelo Relacionamento de duas Entidades Fundamentais sempre que estas se relacionarem mais de uma vez.Exemplo: aluno x matéria, CD x Autor, pedido x produto, etc.....
AtributosOs Atributos são as informações básicas que qualificam uma
entidade e descrevem seus elementos ou características.Quando transposta ao modelo físico (ao banco de dados),
chamamos os atributos de campos ou colunas.
TuplaÉ uma estrutura de atributos intimamente relacionados e
interdependentes que residem em uma entidade.Quando transposta ao modelo físico (ao banco de dados), uma
tupla equivale a um registro ou linha da tabela.
ChaveÉ um atributo utilizado para indexar dados.
Há três tipos de chave:
o Primária
o Estrangeira
o Secundária
Chave PrimáriaÉ o atributo que permite identificar uma única ocorrência de uma
trupla em uma entidade.Dessa forma seu conteúdo deve ser ÚNICO.
Quando há dois atributos para compor uma chave primária, chamamos de Chave Concatenada.
Chave Estrangeira e SecundáriaA Chave Estrangeira é o atributo que estabelece a relação de
uma Entidade com a Chave Primária de outra Entidade e permite uma relação entre entidades.
A Chave Secundária é utilizada como meio de classificação e pesquisa em entidades.
RelacionamentoSempre que duas entidades apresentarem interdependência (por exemplo, autor da música ou música do CD), indica-se um relacionamento entre elas.
Cada Entidade 1Deve ter
ou Pode ter
relacionamento
Uma ou Maisou
Uma única
Entidade 2
Cada relacionamento contém um nome (verbo), a determinação de opcionalidade (deve ou pode) e um grau ou cardinalidade (uma única ou uma ou mais)
Convenção para utilização em diagramas
1:1
1:M
M:N
Cada entidade A pode conter uma ou mais entidade (s) B.
Cada entidade B deve estar contida em uma única entidade A.
Relacionamento 1:1Ocorre sempre que uma entidade tiver uma única ocorrência para cada ocorrência na outra entidade.
Por exemplo:Um departamento é gerenciado por um gerente, e cada gerente gerencia um departamento.
Relacionamento 1:nOcorre sempre que uma entidade se relacionar com uma ou mais tuplas
da outra entidade e esta outra se relacionar apenas com uma tupla daquela entidade.
Por exemplo:Uma gravador possui vários CDs e cada CD é gravado apenas por uma Gravadora.Cada Cliente possui vários Pedidos e cada Pedido é de um único Cliente.
Relacionamento m:nOcorre sempre que uma entidade se relacionar com várias tuplas de
outra entidade e esta, por sua vez, relacionar-se com várias tuplas daquela entidade.
Por exemplo:Cada música é composta por um ou vários Autores, e cada Autor pode compor uma ou várias músicas.
Integridade referencialÉ um mecanismo utilizado para manter a consistência das informações
gravadas. Dessa forma, não são permitidas a entrada de valores duplicados nem a existência de uma referência a uma chave inválida em uma entidade.
PERGUNTAS?
Samuel Novais Moura Jr.Especialista em Inteligência Competitiva
Centro Interdisciplinar de Estudos em Transportes (Ceftru)Universidade de Brasília (UnB)55- 61- 3307-2057 ramal 20155- 61- [email protected]@ceftru.unb.br