1 of 54

BANCO DE DADOS I

fundamentos de bancos de dados

Professora Maria Laura Chaves

2 of 54

Como armazenar informações de forma persistente, organizada, confiável e acessível?

3 of 54

O QUE É UM DADO?

Um dado é uma representação de algum fato, característica, evento ou objeto.

​

Pode ser representado por números, textos, datas, imagens, sons, vídeos, códigos, valores booleanos, etc.

​

O dado sozinho nem sempre possui significado suficiente.

4 of 54

O QUE É INFORMAÇÃO?

A informação surge quando os dados são organizados e interpretados dentro de determinado contexto.

5 of 54

DADO vs INFORMAÇÃO

6 of 54

PERSISTÊNCIA DE DADOS

​

Persistência é a capacidade de manter os dados armazenados além do tempo de execução do programa que os criou ou utilizou.

​

Um dado persistente continua existindo depois que:

    • o programa é fechado;
    • o computador é reiniciado;
    • o usuário encerra a sessão.

​

7 of 54

PERSISTÊNCIA DE DADOS

​

Persistência não significa necessariamente o uso de banco de dados.

​

Dados podem ser persistidos por meio de:

    • Cartão perfurado
    • Fitas magnéticas
    • .txt
    • .csv
    • JSON
    • XML
    • Planilhas
    • Banco de dados

8 of 54

PERSISTÊNCIA DE DADOS EM ARQUIVOS

​

Comum nas décadas de 1940 e 1950.

​

Chamamos de arquivos isolados ou sistemas baseados em arquivos aqueles em que diferentes aplicações mantêm seus próprios arquivos de dados, normalmente sem gerenciamento centralizado.

9 of 54

Imaginem que a faculdade não tenha banco de dados. �Cada setor mantém um arquivo próprio com os dados dos alunos. A secretaria tem um arquivo, o financeiro outro e a coordenação outro.� �O que pode dar errado?

10 of 54

REDUNDÂNCIA

Redundância ocorre quando o mesmo dado é armazenado mais de uma vez.

​

11 of 54

REDUNDÂNCIA

Redundância nem sempre é ruim.

​

Existem situações em que a redundância é planejada por motivos como:

    • desempenho;
    • disponibilidade;
    • replicação;
    • tolerância a falhas;
    • Data Warehouse;
    • cache;
    • sistemas distribuídos.

​

O problema é a redundância não controlada.

​

12 of 54

CONSISTÊNCIA DE DADOS

Consistência significa que os dados armazenados devem representar o estado esperado do domínio sem apresentarem contradições indevidas.

13 of 54

COMPARTILHAMENTO

O compartilhamento costuma ser mais difícil porque cada aplicação, setor ou usuário pode manter seus próprios arquivos e formatos de armazenamento.

14 of 54

CONTROLE DE ACESSO

Em aplicações que utilizam arquivos isolados, esse controle geralmente fica sob responsabilidade do sistema operacional e da própria aplicação, por meio de permissões de usuários, pastas e arquivos.

​

Isso pode se tornar um problema quando diferentes aplicações ou usuários precisam acessar os mesmos dados, pois cada arquivo pode possuir regras próprias de acesso, dificultando a administração, a segurança e a padronização das permissões

15 of 54

CONCORRÊNCIA

A concorrência ocorre quando dois ou mais usuários ou programas tentam acessar ou modificar o mesmo arquivo ao mesmo tempo.

​

Como arquivos isolados normalmente não possuem mecanismos sofisticados para coordenar esses acessos, podem ocorrer problemas como sobrescrita de dados, perda de alterações e inconsistências.

16 of 54

INTEGRIDADE DE DADOS

Integridade representa o conjunto de condições que garantem que os dados permaneçam válidos e coerentes de acordo com as regras estabelecidas para o sistema.

17 of 54

DEPENDÊNCIA

Nos sistemas baseados em arquivos, frequentemente o programa precisa conhecer exatamente a estrutura do arquivo.

​

Isso faz com que qualquer alteração na estrutura do arquivo possa exigir mudanças também nos programas que o utilizam.

18 of 54

CONSULTA

A consulta em sistemas baseados em arquivos geralmente depende de programas específicos desenvolvidos para abrir o arquivo, percorrer seus registros e localizar os dados desejados.

19 of 54

PERSISTÊNCIA DE DADOS EM ARQUIVOS

20 of 54

PERSISTÊNCIA DE DADOS EM ARQUIVOS

​

Não há problema em usar arquivos.

​

​

O problema surge quando precisamos administrar grandes conjuntos de dados relacionados, utilizados simultaneamente por vários sistemas e usuários.

​

21 of 54

Como armazenar informações de forma persistente, organizada, confiável e acessível?

22 of 54

BANCO DE DADOS

Banco de dados é uma coleção organizada e logicamente relacionada de dados que representa informações de um determinado contexto do mundo real e é mantida para uma finalidade específica.

23 of 54

BANCOS DE DADOS - HISTÓRIA

É principalmente na década de 1960 que aparecem os sistemas reconhecidos como antecessores diretos dos SGBDs modernos.

​

O IDS (Integrated Data Store), criado na General Eletric, é frequentemente citado como um dos primeiros sistemas de gerenciamento de banco de dados de propósito geral.

​

24 of 54

BANCOS DE DADOS - HISTÓRIA

O IDS utilizava uma estrutura que mais tarde seria associada ao chamado modelo em rede.

​

A ideia fundamental era deixar de tratar os dados apenas como arquivos completamente independentes.

​

Os registros podiam possuir

relacionamentos.

​

25 of 54

BANCOS DE DADOS - HISTÓRIA

Outro marco importante foi o IMS — Information Management System, pela IBM desenvolvido a partir da segunda metade da década de 1960.

​

O IMS utilizava um modelo hierárquico.

26 of 54

BANCOS DE DADOS - HISTÓRIA

O grande ponto de mudança ocorreu em 1970 onde o pesquisador Edgar F. Codd, da IBM, publicou o artigo “A Relational Model of Data for Large Shared Data Banks”

​

Nele foi apresentado o modelo relacional.

​

A ideia era representar os dados utilizando relações, que na prática dos SGBDs atuais, são normalmente visualizadas como tabelas.

27 of 54

BANCO DE DADOS - HISTÓRIA

28 of 54

BANCO DE DADOS - HISTÓRIA

Nos anos 1970 foi desenvolvido o projeto experimental IBM System R que utilizava os modelo de dados relacional proposto por Codd.

​

Com base nesse modelo, os pesquisadores Donald Chamberlin e Raymond Boyce, também da IBM, desenvolveram uma linguagem inicialmente chamada SEQUEL (Structured English Query Language) que posteriormente foi denominada SQL e, com a expansão dos bancos de dados relacionais, tornou-se um padrão para criação, consulta e manipulação de dados.

29 of 54

BANCO DE DADOS vs SGBD

Nos sistemas anteriores, o programa frequentemente precisava saber como navegar fisicamente pelos dados.

​

No modelo relacional, o objetivo passou gradualmente a ser diferente. Você informa qual informação deseja, e o SGBD decide como encontrá-la.

30 of 54

BANCO DE DADOS - HISTÓRIA

No final da década de 1970 a tecnologia começou então a sair dos laboratórios.

​

Entre os sistemas que se tornaram importantes estavam:

    • Oracle;
    • IBM DB2;
    • Informix;
    • Sybase;
    • Microsoft SQL Server;
    • Postgres

​

31 of 54

BANCO DE DADOS - HISTÓRIA

Nos anos 2000 um novo conceito de banco de dados foi desenvolvido o NoSQL (Not Only SQL), termo usado para representar bancos de dados que não seguem exclusivamente o modelo relacional tradicional baseado em tabelas, linhas e colunas.

​

Diferentemente dos bancos relacionais, muitos bancos NoSQL adotam modelos como documentos, chave-valor, colunas ou grafos, oferecendo maior flexibilidade de estrutura e facilidade de distribuição dos dados entre vários servidores.

32 of 54

BANCO DE DADOS

O banco deve representar parte do mundo real.

​

Em modelagem de dados, frequentemente utilizamos a ideia de minimundo ou universo de discurso.

​

O banco não precisa representar o mundo inteiro. Representa aquilo que interessa ao sistema.

​

33 of 54

BANCO DE DADOS vs SGBD

​

Banco de dados faz referência aos dados organizados.

​

Já um Sistema Gerenciador de Banco de Dados é o software responsável por gerenciar e manipular esses dados.

34 of 54

SGBD - ATRIBUIÇÕES

35 of 54

SGBD

36 of 54

METADADOS

Uma das características importantes dos SGBDs é sua natureza autodescritiva. O SGBD não armazena apenas os dados.

​

Também mantém informações descrevendo:

    • bancos;
    • tabelas;
    • colunas;
    • tipos;

​

​

​

    • restrições;
    • índices;
    • relacionamentos;
    • usuários;
    • permissões.

​

Essas informações fazem parte do catálogo do sistema ou dicionário de dados.

37 of 54

METADADOS

Metadados são frequentemente definidos como dados sobre os dados.

38 of 54

APLICAÇÃO vs SGBD vs BANCO DE DADOS

39 of 54

APLICAÇÃO vs SGBD vs BANCO DE DADOS

40 of 54

SGBD

O SGBD sozinho não resolve todos os problemas. Um banco mal projetado ainda pode possuir:

    • redundância;
    • inconsistência;
    • ausência de integridade;
    • dados duplicados;
    • baixo desempenho;
    • problemas de segurança.

​

SGBD fornece mecanismos, mas o projeto do banco determina como esses mecanismos serão utilizados.

41 of 54

MODELO RELACIONAL

No modelo relacional, os dados são organizados em relações. Na prática, podemos visualizar uma relação como uma tabela.

​

42 of 54

MODELO RELACIONAL

Cada coluna representa uma característica do dado que estamos armazenando. Formalmente, no modelo relacional, usamos o termo atributo ou campo.

​

​

43 of 54

MODELO RELACIONAL

Cada linha da tabela representa uma ocorrência completa.

No modelo relacional, usamos o termo tupla ou registro.

​

​

44 of 54

MODELO RELACIONAL

Cada posição de uma tupla contém um valor.

​

45 of 54

MODELO RELACIONAL

Cada atributo deve aceitar determinados tipos ou conjuntos de valores.

Esse conjunto possível de valores é chamado de domínio.

​

Em um SGBD como MySQL,

isso começa a aparecer por

meio dos tipos de dados.

​

46 of 54

MODELO RELACIONAL

Um banco de dados precisa conseguir identificar os registros, sendo necessário um atributo que diferencie cada registro.

​

A chave primária, ou Primary Key,

é o atributo — ou conjunto de atributos —

utilizado para identificar

exclusivamente cada

registro de uma tabela.

47 of 54

MODELO RELACIONAL

O banco relacional permite que dados de diferentes tabelas sejam relacionados...

​

A chave estrangeira é utilizada para

referenciar dados existentes

em outra tabela.

48 of 54

MODELO RELACIONAL

No banco relacional eu posso ou não ter valores nos atributos.

​

O NULL representa a ausência de um valor.

49 of 54

MODELO RELACIONAL

A estrutura da tabela é diferente dos dados armazenados nela.

​

Enquanto a estrutura define o que podemos armazenar, os dados são as informações efetivamente armazenadas.

​

Podemos chamar a descrição da

estrutura de esquema da relação.

50 of 54

MODELO RELACIONAL

51 of 54

MySQL

O MySQL é um Sistema Gerenciador de Banco de Dados Relacional.

​

52 of 54

MySQL

Para acessar um servidor normalmente utilizamos informações como:

    • Host
    • Porta
    • Usuário
    • Senha

​

Para nossa instalação local o host é localhost ou 127.0.0.1.

A porta geralmente é a 3306, podendo ser alterada.

53 of 54

MySQL

Ao instalar o MySQL podem aparecer bancos internos.

    • information_schema - Contém informações sobre estruturas existentes no servidor.
    • mysql - Mantém informações internas relacionadas à administração do MySQL, incluindo aspectos de usuários e privilégios.
    • performance_schema - Mantém informações relacionadas à instrumentação e monitoramento do funcionamento do servidor
    • sys - Fornece estruturas que facilitam consultas relacionadas à administração e desempenho.

​

54 of 54

MATERIAL COMPLEMENTAR

�

O QUE É BANCO DE DADOS (EXPLICADO SEM COMPLICAÇÃO) – Programador Primata

https://www.youtube.com/watch?v=9a3xgD4SMwQ

​

Curso Completo de Bancos de Dados Relacionais

https://www.udemy.com/course/curso-completo-de-banco-de-dados-relacionais/?couponCode=UDEAFFMX0826

*ver aula SGBD MySQL – Download e Instalação

​

​