A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Prof. Christiano Lima Santos

Apresentações semelhantes


Apresentação em tema: "Prof. Christiano Lima Santos"— Transcrição da apresentação:

1 Prof. Christiano Lima Santos
Banco de Dados Prof. Christiano Lima Santos

2 Conteúdo do Curso Introdução a Banco de Dados Modelo Relacional
Modelo Entidade-Relacionamento Normalização Álgebra Relacional O SGBD MySQL Introdução à linguagem SQL Linguagem de Definição de Dados – DDL Linguagem de Manipulação de Dados - DML

3 Quem sou eu? Formação: Áreas de Interesse:
Graduado em Ciência da Computação (Universidade Federal de Sergipe); Especialista em Gestão de Negócios (Universidade Cidade de São Paulo); Mestre em Ciência da Computação (Universidade Federal de Sergipe); Linha de pesquisa: Engenharia de Software. Áreas de Interesse: Informática Educativa (Jogos Educativos e Ambientes Virtuais de Aprendizagem); Engenharia de Software (Desenvolvimento Dirigido por Modelos); Computação Inteligente (Geração de Linguagem Natural).

4 Introdução a Banco de Dados
Parte 01

5 Sumário Armazenamento e recuperação de dados
O que é um Banco de Dados? Vantagens dos Bancos de Dados sobre os Arquivos de Dados Arquitetura em três níveis de um SGBD Modelos de Dados Linguagens de Banco de Dados

6 Dado x Informação Dado – todo valor (numérico, textual, lógico etc.) que pode ser armazenado em um computador; Informação – todo dado ou conjunto de dados que, após algum tipo de processamento ou manipulação, apresenta algum significado útil.

7 Armazenamento e recuperação de dados
Todo sistema de informação pode lidar com armazenamento e recuperação de dados por meio de arquivos de dados;

8 Armazenamento e recuperação de dados
Entretanto, certos sistemas de informação podem apresentar problemas ao utilizar tal forma de armazenamento e recuperação de dados; Sistemas monousuários x sistemas multiusuários; Risco de redundância e inconsistência dos dados; Recuperação, processamento ou filtragem de grandes volumes de dados. Bancos de dados podem solucionar tais problemas.

9 O que é um Banco de Dados? É uma coleção de dados relacionados;
Podemos considerar como sendo um repositório para armazenamento de informações persistente; Uma boa analogia pode ser um armário de arquivo. Assim, um Sistema Gerenciador de Banco de Dados (SGBD) é um sistema que permite o armazenamento, atualização e recuperação das informações presentes nesse repositório. Por meio de tal sistema, um usuário pode: Adicionar, alterar ou remover arquivos (tabelas) no banco de dados; Inserir, alterar, remover ou recuperar dados (registros) dos arquivos (tabelas).

10 Exemplo de um Banco de Dados (Sistema de Biblioteca)
Dados de Livros Dados de Usuários LivroID Nome Autores 1 Engenharia de Software R. Pressman 2 Banco de Dados C. J. Date 3 Segurança da Informação J. Smith UsuarioID Nome 1 Christiano 2 Davi 3 Márcio Dados de Empréstimos EmprestimoID LivroID UsuarioID DataEmprestimo DataDevolucao 1 01/06/2015 05/06/2015 2 3 07/06/2015

11 Representação simplificada de um SGBD
Fonte: (DATE, 2004)

12 Componentes de um sistema de banco de dados
Hardware, em que o SGBD será mantido; Software, já que o SGBD é um software (ou conjunto de softwares) responsável por gerenciar os dados; Procedimentos, isto é, instruções e regras que ditam como projetar e usar o banco de dados (forma de log on, aplicações para acesso ao SGBD, política de backup etc.); Dados, ponto central de todo SGBD; Usuários, ou seja, todos que, de alguma forma, se utilizam do SGBD.

13 Tipos de usuário de um SGBD
Usuários finais – acessam o banco de dados por meio dos softwares criados pelos desenvolvedores de aplicação ou específicos para consultas a bancos de dados; Usuários simples – utilizam somente softwares criados pelos desenvolvedores de aplicação e não precisam conhecer a estrutura do banco de dados ou linguagens para consultas; Usuários sofisticados – podem utilizar os mesmos softwares empregados pelo grupo anterior, mas conhecem a estrutura do banco de dados e uma linguagem para consultas (geralmente SQL) e por isso podem realizar consultas mais personalizadas aos dados.

14 Tipos de usuário de um SGBD
Desenvolvedores de aplicação – responsáveis por desenvolver e/ou manter softwares que acessarão o banco de dados. Tais aplicações poderão recuperar, inserir, atualizar ou remover dados do banco;

15 Tipos de usuário de um SGBD
Projetistas de banco de dados (database designers) – responsáveis por identificar os dados, relacionamentos entre dados e quaisquer restrições sobre os dados (isto é, as regras de negócios). Assim, são responsáveis pelo projeto de banco de dados conceitual, lógico e físico;

16 Tipos de usuário de um SGBD
Administradores: Administradores de dados (DA) – responsáveis por gerenciar os recursos de dados planejando, desenvolvendo e mantendo padrões, políticas e procedimentos referentes ao projeto e uso de banco de dados. Sua função é garantir que os bancos de dados da organização suportam os objetivos corporativos; Administradores de banco de dados (DBA) – atuam diretamente sobre o SGBD, projetando melhorias para os bancos de dados bem como gerenciando seus recursos e possíveis falhas. Focam aspectos como otimização, segurança e desempenho.

17 Vantagens dos Bancos de Dados sobre Arquivos de Dados
Dados podem ser compartilhados; Melhor gerenciamento de acesso multiusuário aos dados; Redundância pode ser reduzida ou eliminada; Inconsistência pode ser evitada; Integridade pode ser mantida; Suporte a transações; Maior transparência na manipulação dos dados; Flexibilidade de acesso aos dados.

18 Vantagens dos Bancos de Dados sobre Arquivos de Dados
Requisitos conflitantes podem ser equilibrados; Redução do tempo para armazenamento, recuperação e processamento dos dados; Segurança pode ser melhorada; Maior proteção aos dados contra acessos indevidos ou perdas não intencionais; “Relacionabilidade” dos dados; Possibilidade de estabelecer relacionamentos entre diferentes tipos de dados.

19 Arquitetura em três níveis de um SGBD
Nível externo – nível mais próximo dos usuários de um sistema, referindo-se à forma como os usuários vêem os dados; A forma como um usuário ou grupo de usuários com necessidades similares vê os dados é chamada de visão do usuário; Nível conceitual – representa a união de todas as visões de usuário do nível externo; O banco de dados, neste nível é descrito em um esquema lógico; Nível interno – corresponde à representação real (física) dos dados em um computador e os métodos usados para acessá-los; Também referenciado como nível físico.

20 Independência dos dados
Sistemas de banco de dados proporcionam dois tipos de independência dos dados: Independência física – o nível conceitual é independente de mudanças no nível interno ou físico; Independência lógica - o nível externo é independente de mudanças no nível conceitual.

21 Modelos de Dados Um modelo de dados é uma coleção de ferramentas conceituais para descrever dados e seus relacionamentos e semântica bem como restrições de consistência (SILBERSCHATZ, KORTH e SUDARSHAN, 2011).

22 Modelos de Dados Classificação dos modelos de dados:
Modelo Relacional – usa uma coleção de tabelas (relações) para representar dados e relacionamentos entre dados, onde cada tabela é formada por colunas (atributos) e cada linha pode ser considerada um registro. A maioria dos sistemas de bancos de dados baseiam-se no modelo relacional;

23 Modelos de Dados Classificação dos modelos de dados:
Modelo Entidade-Relacionamento – emprega uma coleção de objetos (entidades) e relacionamentos entre tais objetos e é usado na modelagem de bancos de dados;

24 Modelos de Dados Classificação dos modelos de dados:
Modelo Orientado a Objetos – pode ser visto como uma extensão do modelo ER com aspectos de orientação a objetos (encapsulamento, métodos etc.). O modelo objeto-relacional nasce como um híbrido dos modelos orientados a objetos e dos modelos relacionais;

25 Modelos de Dados Classificação dos modelos de dados:
Modelo de Dados Semiestruturados – diferentemente dos modelos anteriores, permite que a especificação de dados de cada item apresente diferente conjunto de atributos. A linguagem de marcação XML é amplamente usada para representar dados semiestruturados.

26 Modelos de Dados OBS: Antes de tais modelos, houveram o modelo em rede e o modelo hierárquico, mas devido à dificuldade de modelar os dados nos mesmos, caíram em desuso.

27 Linguagens de Banco de Dados
Linguagem de Definição dos Dados (DDL); Usada para especificar o esquema do banco de dados; Provê operações para descrever e nomear as entidades, atributos e relacionamentos que representarão os dados para uma dada aplicação; Linguagem de Manipulação dos Dados (DML); Usada para recuperar ou atualizar os dados em um banco; Provê operações para inserir, modificar, remover ou recuperar os dados.

28 Introdução a Banco de Dados Parte 01
Exercícios Introdução a Banco de Dados Parte 01

29 Modelo Relacional Parte 02

30 Sumário

31 Introdução ao Modelo Relacional
Introduzido por E. F. Codd em 1970 (IBM); Fundamentado na teoria dos conjuntos; Lida com conceitos simples de: Relações (tabelas); Atributos (colunas); Domínios (intervalos de valores); Tuplas (linhas/registros). Modelo seguido pela maioria dos atuais SGBD.

32 Objetivos Permitir um alto grau de independência dos dados;
Prover o alicerce necessário para lidar com problemas de semântica, consistência e redundância dos dados; Ideia de relações normalizadas. Habilitar a expansão das linguagens de manipulação de dados orientadas a conjuntos.

33 Principais conceitos Relação; Atributo; Domínio; Tupla; Esquema.

34 Relação Representa uma tabela, isto é, um conjunto de dados que apresentam alguma relação entre si, dispostos logicamente em colunas (atributos) e linhas (tuplas). Matematicamente, um conjunto, onde seus elementos são as tuplas, que podem ser descritas pelos seus atributos (cada atributo admitindo um valor dentro de um domínio); Em um banco de dados relacional, cada relação possui um nome único!

35 Relação Enfim, aqui estão três exemplos de relações: Relação Livro
Relação Usuário LivroID Nome Autores 1 Engenharia de Software R. Pressman 2 Banco de Dados C. J. Date 3 Segurança da Informação J. Smith UsuarioID Nome 1 Christiano 2 Davi 3 Márcio Relação Empréstimo EmprestimoID LivroID UsuarioID DataEmprestimo DataDevolucao 1 01/06/2015 05/06/2015 2 3 07/06/2015

36 Atributo Representa uma coluna dentro de uma relação;
Um conjunto de atributos descrevem uma relação; Em uma relação, cada atributo possui um nome único!

37 Atributo Relação Usuário
A relação Usuário (abaixo) possui dois atributos (UsuarioID e Nome): Relação Usuário UsuarioID Nome 1 Christiano 2 Davi 3 Márcio

38 Atributo Um atributo pode ser do tipo:
Simples – quando apresenta um valor de um único domínio; Composto – quando seu valor é na verdade uma tupla formada por vários domínios (ideia de “sub-atributos”); Multivalorado – quando pode armazenar mais de um valor (ideia de listas).

39 Domínio É o conjunto de valores admissíveis para um ou mais atributos;
Isto é, intervalo de valores que podem ser atribuídos a uma coluna da tabela; Em uma relação, dois ou mais atributos podem admitir o mesmo domínio.

40 Domínio Na relação Usuário, podemos dizer que: Relação Usuário
Domínio do atributo UsuarioID é o domínio dos valores inteiros; Em MySQL, INT. Domínio do atributo Nome é o domínio dos valores textuais; Em MySQL, CHAR ou VARCHAR. Relação Usuário UsuarioID Nome 1 Christiano 2 Davi 3 Márcio

41 Tupla Trata-se de uma linha de uma relação;
Em outras palavras, é um registro de uma tabela, composto por valores que satisfazem os domínios dos atributos da mesma; Em uma relação, não podemos ter duas tuplas idênticas, isto é, com os mesmos valores!

42 Tupla A relação Usuário possui três tuplas: Relação Usuário UsuarioID
Nome 1 Christiano 2 Davi 3 Márcio

43 Esquema Esquema de uma relação é a relação definida por um conjunto de atributos e seus respectivos domínios; RUsuario = (UsuarioID:INT, Nome:VARCHAR(50)) Esquema de um banco de dados relacional é o conjunto de esquemas das relações, cada qual com nomes distintos. R = { RLivro, RUsuario, REmprestimo }

44 Outros conceitos Grau – o grau de uma relação é o número de atributos que ela contém; Cardinalidade – a cardinalidade de uma relação é o número de tuplas que ela contém; Banco de dados relacional – uma coleção de relações normalizadas com nomes de relações distintos.

45 Propriedades das relações
(CONNOLLY e BEGG, 2005) Cada relação possui um nome distinto de todas as outras relações no esquema relacional a que pertence; Cada célula da relação (normalizada) contém exatamente um único valor atômico; Cada atributo em uma relação tem um nome distinto;

46 Propriedades das relações
(CONNOLLY e BEGG, 2005) Os valores de um atributo são todos do mesmo domínio; Cada tupla é distinta, não há tuplas duplicadas; A ordem dos atributos não tem significância; A ordem das tuplas não tem significância, em teoria (pois na prática, é importante para otimizar armazenamento e indexação das mesmas)!

47 Chaves de uma relação Não há tuplas duplicadas em uma relação;
Consequentemente, há um conjunto de um ou mais atributos capazes de identificar unicamente cada tupla em uma relação, tal conjunto é a superchave; Se uma chave é composta por mais de um atributo, ela é uma chave composta;

48 Chaves de uma relação Uma superchave pode conter atributos não necessários para identificar unicamente uma tupla, mas se não houver tais atributos desnecessários, então ela será uma chave candidata. Unicidade e irredutibilidade são, então, propriedades de uma chave candidata;

49 Chaves de uma relação A chave candidata que for escolhida para identificar unicamente as tuplas de uma relação é chamada de chave primária (PK); Livro PK LivroID: INT Nome: VARCHAR(50) Autores: VARCHAR(50) Usuario PK UsuarioID: INT Nome: VARCHAR(50)

50 Chaves de uma relação E se um atributo ou conjunto de atributos de uma relação refere-se a uma chave candidata de alguma relação (outra relação ou a própria), tem-se então uma chave estrangeira (FK). Livro PK LivroID: INT Nome: VARCHAR(50) Autores: VARCHAR(50) Emprestimo PK EmprestimoID: INT FK LivroID: INT FK UsuarioID: int DataEmprestimo: Date DataDevolucao: Date Usuario PK UsuarioID: INT Nome: VARCHAR(50)

51 Chaves de uma relação Resumindo:
Superchave - conjunto de um ou mais atributos capazes de identificar unicamente cada tupla em uma relação; Chave candidata - uma superchave da qual nenhum atributo pode ser removido sem prejudicar a unicidade da tupla; Chave primária - chave candidata escolhida para identificar unicamente as tuplas de uma relação; Chave estrangeira - atributo ou conjunto de atributos de uma relação que se refere a uma chave candidata de alguma relação (outra relação ou a própria).

52 Restrições de integridade
Integridade de Entidade Em uma relação, nenhum atributo de uma chave primária pode assumir valor null (nulo); Null – Representa um valor para um atributo que é atualmente desconhecido ou não é aplicável para aquela tupla;

53 Restrições de integridade
Integridade Referencial Se uma chave estrangeira existir em uma relação, o valor da chave estrangeira deve “casar” com o valor de uma chave candidata de alguma tupla da relação de origem ou seu valor deve ser null;

54 Restrições de integridade
Restrições Gerais Regras adicionais especificadas por usuários ou administradores de banco de dados que definem ou restringem alguns aspectos importantes para a corporação (regras de negócio).

55 Referências Bibliográficas
CONNOLLY, Thomas; BEGG, Carolyn. Database Systems – A practical approach to design, implementation and management. Ed. 4, Addison Wesley, 2005. COURTNEY, J. F.; PARADICE, D. B.; BREWER, K. L.; GRAHAM, J. C. Database Systems for Management. Ed. 3, 2010. DATE, C. J. An Introduction to Database Systems. Ed. 8, Pearson Education, 2004. ELMASRI, Ramez; NAVATHE, Shamkant. Sistemas de Banco de Dados. 6ª ed. São Paulo : Pearson Addison-Wesley, 2011. SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Database System Concepts. Ed. 6, 2011.


Carregar ppt "Prof. Christiano Lima Santos"

Apresentações semelhantes


Anúncios Google