Banco de Dados Definição Um banco de dados é uma coleção de dados relacionados. Definimos dados como fatos conhecidos que podem ser registrados e que possuem significado implícito. Exemplo: Agenda telefônica e de endereços. Propriedades de um Banco de Dados: Um Banco de Dados modela uma coleção de dados relacionados do mundo real transportando-os para o mini-mundo (miniworld) ou para o Universo de Discurso (UoD, Universe of Discourse) como também é conhecido. Um Banco de Dados é uma coleção lógica e coerente de dados com algum significado inerente. Um Banco de Dados é modelado com dados que possuem um objetivo específico. Ele possui um grupo provável de usuários e algumas aplicações preconcebidas, nas quais esses usuários etão interessados. Um Banco de Dados possui alguma fonte, da qual os dados são derivados, algum grau de intereção com eventos do mundo real e um público que está ativamente interessado no conteúdo do banco de dados. Um Banco de Dados pode ser gerado e mantido manualmente ou pode ser informatizado. O catálogo de fixas de uma biblioteca é um exemplo de banco de dados que pode ser criado e mantido manualmente. Um banco de dados informatizado pode ser criado e mantido por um grupo de programas de apliacações, escritos especificamente para aquela tarefa ou por um sistema de gerenciamente de banco de dados. Sistemas de Gerenciamento de Banco de Dados ou Sistemas de Gerenciamento de Base de Dados(SGBD) São softwares que gerenciam base de dados. Com o objetivo de gerenciar o acesso, manipular e organizar dados independente da ação da aplicação cliente. “O SGBD disponibiliza uma interface para que os seus clientes possam incluir, alterar ou consultar dados. Em bancos de dados relacionais a interface é constituída pelas APIs ou drivers do SGBD, que executam comandos na linguagem SQL”. Fonte:http://pt.wikipedia.org/wiki/Sistema_de_gerenciamento_de_banco_de_dados Funções Básicas: Métodos de acesso Integridade Semântica Segurança Concorrência Independência Fonte: http://www.inf.ufsc.br/~ronaldo/ine5613/2-sgbd.pdf Principais linguagens para manipular banco de dados: SQL, em seus vários padrões, como SQL2 e SQL3; OQL Exemplos de SGBDs PosrgreSQL; Firebird; HSQLDB; IBM DB2; mSQL; Oracle; SQL-Server; TinySQL; JADE; ZODB; Sybase; Segundo uma pesquisa feita em dezembro de 2007 pela Evans Data Corporation os principais SGDBs do mercado na opinião dos usuários são: 1°lugar => Oracle 2°lugar => DB2 3°lugar => MySQL Fonte: http://www.midstorm.org/~telles/2008/03/05/pesquisa-entre-os-maiores-bancos-de-dados-do-mercado-postgresql-pede-passagem/ Definir banco de dados envolve especificar o tipo de dados, as estruturas e as restrições para os dados que serão armazenados no banco de dados. Construir o banco de dados é o processo de armazenar os referidos dados de algum meio de armazenamento que seja controlado pelo SGBD. Manipular o banco de dados inclui funções como fazer consultas ao banco de dados para recuperar dados específicos,atualizar o banco dados para refletir alterações no miniworld, e gerar relatórios a partir de dados. Não é necessário usar um software pré-existente de SGBD para implementar um Banco de Dados específico. Um SGBD pode ser criado para um Banco de Dados específico. O Banco de Dados em conjunto com o SGBD é chamado de Sistema de Banco de Dados. Arquivo => coleção de registros que podem ou não estar ordenados. Para definir um banco de dados é necessário que a estrutura dos registros de cada arquivo seja especificada, ou seja, que os diferentes tipos de elementos dos dados a serem armazenados em cada registro seja especificada. Precisa-se também especificar um tipo de dado para cada elemento do dado de cada registro. Exemplos de tipos de dados: String char bollean int float Características do Enfoque de Banco de Dados No enfoque de banco de dados, um único repositório de dados é mantido, o qual, uma vez definido, passa a ser acessado por vários usuários. Principais Características A Natureza Autodescritiva de um Sistema de Banco de Dados Isolamento entre Programas e Dados e Abstração de Dados Suporte de Visões Múltiplas dos Dados Compartilhamento de Dados e Processamento de Transações Multiusuário A Natureza Autodescritiva de um Sistema de Banco de Dados O sistema de banco de dados contém,além do banco de dados, uma definição completa ou uma descrição das restrições e da estrutura do banco de dados. Essa definição é armazenada no catálogo do sistema, que contém pos sua vez os metadados que são as informações com a estrutura de cada arquivo, o tipo e o formato de armazenamento de cada item de dados e várias restrições relativas aos dados. O catálogo é utilizado pelo software do SGBD e também pelos usurários do banco de dados que necessitam de informações sobre a estrutura do banco de dados. Um SGBD de finalidade genérica não é projetado para uma aplicação de banco de dados específica, e portanto deve se referenciar ao catálogo para conhecer a estrutura dos arquivos de um banco de dados específico, tal como o tipo e o formato dos dados que irá acessar. Isolamento entre Programas e Dados e Abstração de Dados No processo de dados tradicional, a estrutura dos arquivos de dados está embutida nos programas de acesso, de forma que qualquer alteração na estrutura de um arquivo pode exigir alterações em todos os programas que acessam esse arquivo. Os softwares de acesso da SGBD possuem uma propriedade de independência entre programa e dados (ou independência de dados) que normalmente não exigem tais alterações. A estrutura de dados é armazenada no catálogo do SGBD separadamente dos programas de acesso. Em banco de dados orientados a objeto e em banco de dados relacional/objeto, os usuários podem definir operações nos dados como partedas definições do banco de dados. Uma operação (função) é especificada em duas partes: 1ª interface (ou assinatura) => inclui o nome da operação e seus parâmetros (argumentos). 2ª implementação (ou enfoque) => é especificada separadamente e pode ser alterada sem afetar a interface. Programas de aplicações do usuário podem operar nos dados, invocando essas operações através de seus nomes e argumentos, independentemente de como as operações sejam implementadas. Isso pode ser chamado de independência entre operações e programa. A característica que permite a independência entre programa e dados e a independência entre programa e operação é chamada de abstração de dados. Um SGBD fornece aos usuários uma representação conceitual de dados que não inclui muitos dos detalhes relativos ao modo como os dados estão armazenados ou como as operações são implementadas. modelo conceitual => é um tipo de abstração de dado que é utilizada para fornecer essa representação conceitual, que oculta do usuário falta escrever. Fonte Geral: Elmasri e Navathe, Sistema de Banco de Dados .