BANCO DE DADOS I
fundamentos de bancos de dados
Professora Maria Laura Chaves
Como armazenar informações de forma persistente, organizada, confiável e acessível?
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.
O QUE É INFORMAÇÃO?
A informação surge quando os dados são organizados e interpretados dentro de determinado contexto.
DADO vs INFORMAÇÃO
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:
PERSISTÊNCIA DE DADOS
Persistência não significa necessariamente o uso de banco de dados.
Dados podem ser persistidos por meio de:
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.
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?
REDUNDÂNCIA
Redundância ocorre quando o mesmo dado é armazenado mais de uma vez.
REDUNDÂNCIA
Redundância nem sempre é ruim.
Existem situações em que a redundância é planejada por motivos como:
O problema é a redundância não controlada.
CONSISTÊNCIA DE DADOS
Consistência significa que os dados armazenados devem representar o estado esperado do domínio sem apresentarem contradições indevidas.
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.
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
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.
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.
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.
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.
PERSISTÊNCIA DE DADOS EM ARQUIVOS
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.
Como armazenar informações de forma persistente, organizada, confiável e acessível?
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.
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.
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.
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.
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.
BANCO DE DADOS - HISTÓRIA
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.
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.
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:
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.
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.
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.
SGBD - ATRIBUIÇÕES
SGBD
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:
Essas informações fazem parte do catálogo do sistema ou dicionário de dados.
METADADOS
Metadados são frequentemente definidos como dados sobre os dados.
APLICAÇÃO vs SGBD vs BANCO DE DADOS
APLICAÇÃO vs SGBD vs BANCO DE DADOS
SGBD
O SGBD sozinho não resolve todos os problemas. Um banco mal projetado ainda pode possuir:
SGBD fornece mecanismos, mas o projeto do banco determina como esses mecanismos serão utilizados.
MODELO RELACIONAL
No modelo relacional, os dados são organizados em relações. Na prática, podemos visualizar uma relação como uma tabela.
MODELO RELACIONAL
Cada coluna representa uma característica do dado que estamos armazenando. Formalmente, no modelo relacional, usamos o termo atributo ou campo.
MODELO RELACIONAL
Cada linha da tabela representa uma ocorrência completa.
No modelo relacional, usamos o termo tupla ou registro.
MODELO RELACIONAL
Cada posição de uma tupla contém um valor.
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.
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.
MODELO RELACIONAL
O banco relacional permite que dados de diferentes tabelas sejam relacionados...
A chave estrangeira é utilizada para
referenciar dados existentes
em outra tabela.
MODELO RELACIONAL
No banco relacional eu posso ou não ter valores nos atributos.
O NULL representa a ausência de um valor.
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.
MODELO RELACIONAL
MySQL
O MySQL é um Sistema Gerenciador de Banco de Dados Relacional.
MySQL
Para acessar um servidor normalmente utilizamos informações como:
Para nossa instalação local o host é localhost ou 127.0.0.1.
A porta geralmente é a 3306, podendo ser alterada.
MySQL
Ao instalar o MySQL podem aparecer bancos internos.
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