1. Introdução aos SGBDs
Um banco de dados é uma coleção de tabelas relacionadas que são geralmente integradas, vinculadas ou referenciadas a um outro.A vantagem de um banco de dados é que os dados e registros contidos em tabelas diferentes podem ser facilmente organizadas e recuperadas utilizando software de gestão especializado chamado de sistema gerenciador de banco de dados (SGBD) ou gerente de banco de dados.
Depois de ler esta lição, você deve ser capaz de:
- Definir o sistema de gerenciamento de banco de dados (SGBD).
- Descrever o propósito e funções básicas de um SGBD.
- Discutir as vantagens e desvantagens de SGBDs.
Fundamentos SGBD
Um sistema de gerenciamento de banco de dados é um conjunto de programas de software que permite aos usuários criar, editar, atualizar, armazenar e recuperar dados em tabelas de banco de dados. Dados em um banco de dados podem ser acrescentados, apagados, alterados, classificados usando um SGBD. Se você fosse um empregado em uma grande organização, a informação sobre você provavelmente seria armazenadas em diferentes tabelas que estão ligados entre si. Por referência cruzada dessas tabelas, alguém poderia mudar o endereço de uma pessoa em uma tabela e ela seria automaticamente refletida para todas as outras tabelas.
Características Desejáveis numa Database
- Controle de Redundância;
- Compartilhamento de Dados;
- Controle de Acesso aos Dados;
- Múltiplas Interfaces;
- Representação de associações complexas;
- Garantia de restrições de Integridade;
- Recuperação de falhas.
SGBDs são comumente usados para gerenciar:
- Sócios e listas de discussão de subscrição
- Informação contábil e contabilidade
- Os dados obtidos a partir de pesquisa científica
- Informações de clientes
- Informações de inventário
- Registros pessoais
- Informações da biblioteca
As vantagens de um SGBD
Maior disponibilidade: Uma das principais vantagens de um SGBD é que a mesma informação pode ser disponibilizada a utilizadores diferentes, ou seja, compartilhamento de dados.
Redundância minimizada: Os dados de um SGBD são mais concisos, porque, como regra geral, a informação nela aparece apenas uma vez. Isto reduz a redundância de dados, ou em outras palavras, a necessidade de repetir os mesmos dados uma e outra vez. Minimizando a redundância pode, portanto, reduzir significativamente o custo de armazenamento de informações em discos rígidos e outros dispositivos de armazenamento.
Precisão: dados precisos, consistentes são um sinal de integridade dos dados. SGBDs fomentam a integridade dos dados, porque as atualizações e alterações dos dados só tem que ser feitas em um só lugar. As chances de se cometer um erro são maiores se você é obrigado a alterar os mesmos dados em vários lugares diferentes do que se você só tem que fazer a mudança em um só lugar.
Programa e arquivo de consistência: Usando um sistema de gerenciamento de banco de dados, formatos de tabelas e programas do sistema são padronizados. Isso faz com que os tabelas de dados sejam mais fáceis de manter, porque as mesmas regras e diretrizes se aplicam a todos os tipos de dados. O nível de consistência entre os tabelas e programas também torna mais fácil de gerenciar dados quando vários programadores estão envolvidos.
User-friendly: Os dados são é mais fáceis de acessar e manipular com um SGBD do que sem ele. Na maioria dos casos, SGBDs também reduzem a dependência de usuários individuais à especialistas em computação para atender às necessidades de seus dados.
Maior segurança: Como afirmado anteriormente, SGBDs permitem que múltiplos usuários acessem os recursos dos mesmos dados. Esta capacidade é geralmente vista como um benefício, mas há riscos potenciais para a organização. Algumas fontes de informação devem ser protegidas ou garantida e vista apenas por indivíduos selecionados. Através do uso de senhas, sistemas de gerenciamento de banco de dados podem ser usado para restringir o acesso aos dados a apenas aqueles que devem vê-lo.
Outros: Tempo de desenvolvimento de aplicações é reduzido, Maior flexibilidade para realizar alterações (independência de dados) e Maior economia, informações atualizadas, menor volume de papel.
Que características distinguem um SGBD ?
Catálogo
- Um SGBD mantém não apenas o Banco de Dados, mas também uma definição e descrição das estruturas e restrições (catálogo – metadados)
- A existência do catálogo permite que um mesmo SGBD possa ser utilizado para aplicações distintas (o catálogo indica uma estrutura física utilizada)
Independência de Dados
- Um SGBD dá aos usuários uma visão abstrata dos dados, encobrindo detalhes não relevantes (o usuário-desenvolvedor não precisa saber como os dados são fisicamente armazenados).
Múltiplas Visões dos Dados
- Cada usuário pode exigir uma visão diferenciada da base de dados
Compartilhamento e Transações
- Controle de concorrência
As desvantagens de um SGBD
Existem basicamente duas desvantagens principais em SGBDs. Um deles é o custo, e a outra o perigo para a segurança dos dados.
Custo: A Implementação de um sistema de SGBD pode ser cara e demorada, especialmente em grandes organizações. Requisitos de formação pode ser bastante oneroso.
Segurança: Mesmo com salvaguardas no lugar, pode ser possível para alguns usuários não autorizados acessar o banco de dados. Em geral, o acesso de banco de dados é uma proposição de tudo ou nada. Uma vez que um usuário não autorizado fica no banco de dados, eles têm acesso a todos os tabelas, e não apenas algumas. Dependendo da natureza dos dados envolvidos, essas quebras na segurança também pode representar uma ameaça à privacidade individual. Cuidados também devem ser tomados regularmente para fazer cópias de backup das tabelas e armazená-las por causa da possibilidade de incêndios e terremotos que poderiam destruir o sistema.
Lição de encerramento
Nesta lição, um sistema de gerenciamento de base de dados foi definida, bem como os seus efeitos e funções. Um dos aspectos mais poderosos de um SGBD é a capacidade de organizar e recuperar dados a partir de diferentes, mas relacionadas, tabelas. No entanto, usando Bancos de Dados tem suas vantagens e desvantagens. À medida que avançar com a sua carreira, você deve estar ciente das vantagens e desvantagens que acompanham o uso dessas ferramentas informatizadas. As compensações que temos discutido até agora incluem coisas como a redundância, precisão, acessibilidade e facilidade de utilização de dados em um SGBD. Ser educado sobre os pontos fortes e fracos de SGBDs lhe permitirá tomar decisões mais eficazes sobre como organizar e utilizar os dados.
Agora que você completou esta lição, você deve ser capaz de:
- Definir o termo sistema de gerenciamento de banco de dados (SGBD).
- Descrever o propósito e funções básicas de um SGBD.
- Discutir as vantagens e desvantagens de SGBDs.
2. Usuários
Todo agrupamento de bancos de dados possui um conjunto de usuários de banco de dados. Estes usuários são distintos dos usuários gerenciados pelo sistema operacional onde o servidor executa. Os usuários possuem objetos de banco de dados (por exemplo, tabelas), e podem conceder privilégios nestes objetos para outros usuários controlando, assim, quem pode acessar qual objeto.
Depois de ler esta lição, você deve ser capaz de:
- Definir os tipos de usuários de banco de dados.
- Descrever o propósito e funções básicas de um usuário.
Administrador de Banco de Dados (DBA)
Em um ambiente de banco de dados, o recurso primário é o banco de dados por si só e o recurso secundário o SGBD e os softwares relacionados. A administração destes recursos cabe ao Administrador de Banco de Dados, o qual é responsável pela autorização de acesso ao banco de dados e pela coordenação e monitoração de seu uso. Ou seja ele coordena todas as atividades do sistema de banco de dados; possui boa compreensão dos recursos de informação da empresa e suas necessidades.
Suas funções incluem:
-
- Definição do esquema
- Estrutura de armazenamento e definição de acesso aos dados
- Esquema físico e organização
- Concede acesso aos usuários
- Cuida da integridade dos dados
- Atua como elo com os usuários
- Acompanha a desempenho, e responde as mudanças exigidas
- Atividades de manutenção (Backups)
Projetista de Banco de Dados
O Projetista de Banco de Dados é responsável pela identificação dos dados que devem ser armazenados no banco de dados, escolhendo a estrutura correta para representar e armazenar dados. Muitas vezes, os projetistas de banco de dados atuam como “staff” do DBA, assumindo outras responsabilidades após a construção do banco de dados. É função do projetista também avaliar as necessidades de cada grupo de usuários para definir as visões que serão necessárias, integrando-as, fazendo com que o banco de dados seja capaz de atender a todas as necessidades dos usuários.
Usuários Finais
Existem basicamente três categorias de usuários finais que são os usuários finais do banco de dados, fazendo consultas, atualizações e gerando documentos:
- Usuários casuais: acessam o banco de dados casualmente, mas que podem necessitar de diferentes informações a cada acesso; utilizam sofisticadas linguagens de consulta para especificar suas necessidades;
- Usuários novatos ou paramétricos: utilizam porções pré-definidas do banco de dados,utilizando consultas pre estabelecidas que já foram exaustivamente testadas;
- Usuários sofisticados: são usuários que estão familiarizados com o SGBD e realizam consultas complexas.
Analistas de Sistemas e Programadores de Aplicações
Os analistas determinam os requisitos dos usuários finais e desenvolvem especificações para transações que atendam estes requisitos, e os programadores implementam estas especificações como programas, testando, depurando, documentando e dando manutenção no mesmo. É importante que, tanto analistas quanto programadores, estejam a par dos recursos oferecidos pelo SGBD.
3. Tipos de SGBD
SGBDs vêm em muitas formas e tamanhos. Por algumas centenas de dólares ou até mesmo de forma gratuita, você pode comprar um SGBD para o seu computador desktop. Para sistemas maiores os SGBDs podem ser muito mais caros. Muitos SGBDs são baseados em mainframe e alugados por organizações. SGBDs desta escala são altamente sofisticados e seria extremamente caro para desenvolver a partir do zero. Portanto, é mais barato para uma organização alugar um programa que desenvolvê-lo. Uma vez que há uma variedade de SGBDs disponíveis, você deve conhecer algumas das carácterísticas básicas, bem como os pontos fortes e fracos, dos principais tipos.
Existem quatro tipos estruturais de sistemas de gerenciamento de banco de dados: hierárquico, rede, relacional e orientado a objetos.
Depois de ler esta lição, você deve ser capaz de:
- Comparar e contrastar a estrutura dos diferentes sistemas de gerenciamento de banco de dados.
- Definir Bancos de Dados hierárquicos.
- Definir os Bancos de dados de rede.
- Definir Bancos de Dados relacionais.
- Definir Bancos de dados orientados a objeto.
Banco de dados HIERÁRQUICO
Banco de dados hierárquico , comumente usados em computadores mainframe. É um dos mais antigos métodos de organização e armazenamento de dados, e ainda é utilizado por algumas organizações para a realização de reservas de viagens. Um banco de dados hierárquico é organizado em forma de pirâmide, como os ramos de uma árvore se estendem para baixo. Áreas afins ou registros são agrupados de modo que registros de nível não são mais elevados que outros registros inferiores , assim como os pais em uma árvore genealógica de família que fica acima das crianças.
Com base nesta analogia, o registo principal no topo da pirâmide é chamada registro raiz. Um registro de criança sempre tem apenas um registro pai ao qual ele está ligado, como em uma árvore familiar normal. Em contraste, um registro pai pode ter mais de um registro filho a ele ligado. Bancos de dados hierárquicos trabalham movendo de cima para baixo. A pesquisa de registro é realizada começando pelo topo da pirâmide e indo para baixo através da árvore de pai para filho até que o registro da criança apropriada seja encontrado. Além disso, cada uma das crianças também pode ser um dos pais com crianças abaixo dele.
A vantagem de Bancos de Dados hierárquicos é que podem ser acessados e atualizados rapidamente porque a estrutura do tipo árvore e as relações entre os registos são previamente definidas. No entanto, esse recurso é uma faca de dois gumes. A desvantagemdeste tipo de estrutura de banco de dados é que cada criança na árvore pode ter apenas um pai, e os relacionamentos ou ligações entre as crianças não são permitidas, mesmo se elas fazem sentido do ponto de vista lógico. Bancos de dados hierárquicos são tão rígidos em seu projeto que a adição de um novo campo ou registro requer que o banco de dados inteiro seja redefinido.
Banco de Dados de REDE
Bancos de Dados de REDE são semelhantes aos Bancos de Dados hierárquicos também com uma estrutura hierárquica. Existem algumas diferenças fundamentais, no entanto. Em vez de olhar como uma árvore de cabeça para baixo, um banco de dados de rede se parece mais com uma teia de aranha ou uma rede interligada de registros. Em bancos de dados de rede, as crianças são chamadas de membros e os pais são chamados proprietários. A diferença mais importante é que cada criança ou membro pode ter mais de um pai (ou dono).
Como bancos de dados hierárquicos, Bancos de Dados de rede são usados principalmente em computadores mainframe. Como mais conexões podem ser feitas entre diferentes tipos de dados, bancos de dados de rede são considerados mais flexíveis. No entanto, duas limitações devem ser consideradas quando se utiliza este tipo de banco de dados. Similar aos bancos de dados hierárquicos, Bancos de Dados de rede devem ser definidos com antecedência. Existe também um limite para o número de ligações que podem ser feitas entre os registros.
Banco de dados RELACIONAIS
Em bancos de dados relacionais, a relação entre as tabelas de dados é relacional. Bancos de dados relacionais conectam dados em tabelas diferentes, usando elementos comuns de dados ou um campo chave. Dados em bancos de dados relacionais são armazenados em tabelas diferentes, cada uma com um campo chave que identifica cada linha ou registro. Bancos de dados relacionais são muito mais flexíveis do que as próprias estruturas de dados hierárquicos ou rede. Em bancos de dados relacionais a ligação entre as tabelas são chamadas de relações, as tuplas designam uma linha ou registro, e as colunas são referidas como atributosou campos.
Bancos de dados relacionais trabalham no princípio de que cada tabela tem um campo chave que identifica unicamente cada linha, e que estes campos chave podem ser usados para ligar uma tabela de dados a outra. Deste modo, uma tabela pode ter uma linha formada por um número de conta de cliente, tal como o campo chave, juntamente com o endereço e número de telefone. O número de conta do cliente nesta tabela pode estar ligada a uma outra tabela de dados que inclui também o número de conta do cliente (um campo de chave), mas, neste caso, contém informações sobre a devolução de produtos, incluindo um número de ordem (um outro campo de chave). Este campo chave pode ser ligado a uma outra tabela que contém números de itens e outras informações do produto, tais como local de produção, cor e outros dados. Portanto, usando esse banco de dados, as informações dos clientes podem ser ligadoa a informações específicas do produto.
O banco de dados relacional se tornou bastante popular, por duas razões principais. Em primeiro lugar, os bancos de dados relacionais podem ser usados com pouca ou nenhuma formação. Segundo, as entradas de banco de dados podem ser modificadas sem redefinir a sua estrutura inteira. A desvantagem de usar um banco de dados relacional é que a busca de dados pode levar mais tempo do que se outros métodos são usados.
Banco de dados ORIENTADO A OBJETOS:
Capaz de lidar com muitos novos tipos de dados, incluindo gráficos, fotografias, áudio e vídeo, bancos de dados orientados a objetosrepresentam um avanço significativo sobre seus primos. Por outro lado, uma base de dados de objectos pode ser utilizado para armazenar os dados a partir de uma variedade de fontes de multimédia, tais como fotografias e texto, e produzir como saída um formato multimedia.
Banco de dados orientado a objetos usam pequenos pedaços reutilizáveis de software chamado de objetos. Os próprios objetos são armazenados no banco de dados orientado a objetos. Cada objeto é composto de dois elementos: 1) um pedaço de dados (por exemplo, som, vídeo, texto ou gráfico), e 2) as instruções, ou programas de software chamados métodos, para o que fazer com os dados.
Banco de dados orientados a objeto tem duas desvantagens. Em primeiro lugar, eles são mais caros para se desenvolver. Segundo, a maioria das organizações estão relutantes em abandonar ou converter esses bancos de dados que eles já investiram dinheiro no desenvolvimento e implementação. No entanto, os benefícios para os bancos de dados orientados objeto são convincentes. A capacidade de misturar e combinar objetos reutilizáveis fornece uma capacidade multimídia incrível. Organizações de saúde, por exemplo, podem armazenar, controlar e recuperar tomografias, raios-X, eletrocardiogramas e muitas outras formas de dados cruciais.
Lição de encerramento
Como vimos, os SGBDs são de várias formas. As diferentes estruturas de SGBDs foram comparadas e contrastadas num esforço para ajudar a demonstrar seus pontos fortes e fracos. Como um trabalhador do conhecimento, você pode um dia ser convidado a selecionar e tomar decisões sobre um SGBD. Esta lição fornece um ponto de partida para a compreensão das questões envolvidas.
Agora que você completou esta lição, você deve ser capaz de:
- Comparar e contrastar a estrutura dos diferentes sistemas de gerenciamento de banco de dados.
- Definir Bancos de Dados hierárquicos.
- Definir os bancos de dados de rede.
- Definir Bancos de Dados relacionais.
- Definir Bancos de dados orientados a objeto.
4. Modelo Relacional
Hoje em dia, os novos sistemas de base de dados são quase exclusivamente do tipo relacional.
Databases relacionais substituíram os modelos anteriores porque esses sistemas têm valiosos atributos que a distinguem como superior. Provavelmente o mais importante é você pode mudar a estrutura de dados sem alterações nas aplicações. Suponha, por exemplo, que você adicione uma ou mais colunas numa tabela. Você não precisa alterar nenhum aplicativo que o sistema vai continuar a processar. Claro, se você remover uma coluna que uma aplicação existente utiliza, você vai ter problemas.
Depois de ler esta lição, você deve ser capaz de:
- Definir Bancos de Dados relacionais.
- Discutir as funções e capacidades de uma Base de Dados Relacional
- Definir os objetos de um Banco de Dados Relacional
Porque relacional é melhor
Em aplicações escritas no modelo hierárquico ou rede, a estrutura de dados é praticamente embarcada na aplicação, isto é, a aplicação depende da execução física específica da Database, se você adicionar um novo atributo para o banco de dados, você deve alterar a sua aplicação para acomodar essa mudança, com ou sem a utilização do novo atributo.
Modelos relacionais oferecem flexibilidade estrutural, as aplicações escritas para esse modelo são mais fáceis de. Essa mesma flexibilidade estrutural permite-lhe recuperar conjuntos de dados que você pode não tinha previsto precisar antes da concepção.
Objetos de banco de dados relacional
Veremos agora uma breve descrição dos objetos que compõem um banco de dados do tipo relacional. Eles serão vistos com mais detalhes a medida em que se aprofundaremos no curso.
Tabelas | São os objetos que contém os tipos de dados e os dados reais |
Colunas ou Campos | São as partes das tabelas que armazenam os dados. Devem receber um tipo de dados e ter um nome único |
Tipos de dados | Há vários tipos de dados para serem utilizados como: caráctere, número, data. Um único tipo de dados é atribuído a uma coluna dentro de uma tabela |
Storeds Procedures (procedimentos armazenados) | São como macros em que o código Transact-SQL pode ser escrito e armazenado sob um nome. |
Triggers (gatilhos) | São como storeds procedures que são automaticamente ativados quando os dados são inseridos, alterados ou apagados. Asseguram que regras de negócio e de integridade sejam impostas ao banco de dados. |
Regras (rules) | São atribuídas a colunas de modo que os dados que estão sendo inseridos devem se adaptar aos padrões definidos. Por exemplo, pode-se utilizar regras para permitir que um campo que irá armazenar a UF contenha somente Estados válidos. |
Chaves Primárias (PK) | Embora não sejam objetos em si, as chaves são essenciais para os bancos de dados relacionais. Promove a carácterística de unicidade das linhas, proporcionando uma maneira de identificar de forma única cada item que você queira armazenar. |
Chaves Estrangeiras (FK) | Novamente, não são objetos em si, as chaves estrangeiras são colunas que fazem referências as chaves primárias de outras tabelas. |
Padrões (Defaults) | Podem ser configurados em campos de modo que, se nenhum dado for inserido durante uma operação de Insert, os valores padrão serão utilizados. |
Views (visualizações) | Consistem basicamente em consultas armazenadas nos bancos de dados que podem fazer referência a uma ou muitas tabelas. Você pode criar e salvar views e utiliza-las no futuro. Normalmente excluem certas colunas de uma tabela e vinculam duas ou mais tabelas entre si. Podem ser utilizadas também como mecanismo de segurança. |
Índices | Podem ajudar os dados de modo que as consultas executem mais rápido |