sql - introdução

37
SQL

Upload: samuel-junior

Post on 25-Jun-2015

1.950 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sql -  introdução

SQL

Page 2: Sql -  introdução

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.

Page 3: Sql -  introdução

Objetivo

Objetivo geral do Modulo:

Conhecer os conceitos de modelagem e armazenamento em banco de dados.

Page 4: Sql -  introdução

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.

Page 5: Sql -  introdução

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).

Page 6: Sql -  introdução

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.

Page 7: Sql -  introdução

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.

Page 8: Sql -  introdução

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)

Page 9: Sql -  introdução

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.

Page 10: Sql -  introdução

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.

Page 11: Sql -  introdução

O que é SQL

A linguagem SQL é dividida nos seguintes componentes:

Data Query Language (DQL): permite extrair dados do banco de dados.

SELECT.

Page 12: Sql -  introdução

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.

Page 13: Sql -  introdução

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

Page 14: Sql -  introdução

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.

Page 15: Sql -  introdução

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.

Page 16: Sql -  introdução

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.

Page 17: Sql -  introdução

Banco de Dados

Hierárquico: Relacional,

Representa os dados como uma simples coleção de linhas e colunas em tabelas bidimensionais.

Page 18: Sql -  introdução

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.

Page 19: Sql -  introdução

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

Page 20: Sql -  introdução

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.

Page 21: Sql -  introdução

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).

Page 22: Sql -  introdução

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.

Page 23: Sql -  introdução

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?

Page 24: Sql -  introdução

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.

Page 25: Sql -  introdução

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.....

Page 26: Sql -  introdução

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.

Page 27: Sql -  introdução

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.

Page 28: Sql -  introdução

ChaveÉ um atributo utilizado para indexar dados.

Há três tipos de chave:

o Primária

o Estrangeira

o Secundária

Page 29: Sql -  introdução

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.

Page 30: Sql -  introdução

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.

Page 31: Sql -  introdução

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)

Page 32: Sql -  introdução

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.

Page 33: Sql -  introdução

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.

Page 34: Sql -  introdução

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.

Page 35: Sql -  introdução

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.

Page 36: Sql -  introdução

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.

Page 37: Sql -  introdução

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