AS EMPRESAS ESTÃO "DESESPERADAS" POR ESTE TIPO DE PROFISSIONAL... - VOCÊ É UM DELES?
MEGA FORMAÇÃO EM INFRAESTRUTURA DE TI - O Conhecimento que Vira Dinheiro - CLIQUE AQUI
| « Anterior | Δ Página principal | ¤ Índice | Próxima » |
| Delphi com Banco de Dados Autor: Rodrigo Costa e Silvio Ferreira |
|||
|---|---|---|---|
| Lição 02 de 33 - Modelagem de Dados | |||
O SQL Server utiliza um tipo de banco de dados denominado banco de dados relacional. Em bancos de dados relacionais, os dados são organizados na forma de tabelas. As tabelas são organizadas agrupando dados sobre o mesmo assunto e contêm colunas e linhas de informações. As tabelas então são relacionadas entre si pelo mecanismo de banco de dados. Em geral, pode-se considerar um banco de dados como um conjunto de dados relacionados. Antigamente, um banco de dados era normalmente apenas um arquivo, por exemplo: “funcionarios.dbf, que continha uma única tabela de dados. Dentro do arquivo funcionarios.dbf estavam colunas relacionando dados de funcionários como salário, data de admissão, nome, cpf, matrícula e assim por diante. O arquivo continha uma linha para cada pessoa na empresa, com valores correspondentes nas colunas apropriadas. Os índices, utilizados para aumentar a velocidade dos dados, estavam em um arquivo separado. No SQL Server, um banco de dados não está necessariamente associado a um arquivo – ele é mais um conceito lógico baseado em uma coleção de objetos relacionados. Por exemplo, um banco de dados no MSSQL não contém somente os dados, ele também contém a estrutura do banco de dados, quaisquer índices, a segurança do banco e talvez outros objetos como views e stored procedures. Como podemos perceber, um banco de dados relacional é composto de diferentes tipos de objetos. Alguns dos objetos mais comuns são os seguintes:
Veja o diagrama a seguir para entender melhor estes conceitos:
Acima estão representadas duas tabelas: Departamentos e Funcionarios. Cada tabela possui um conjunto de colunas e cada coluna possui um tipo de dados. A tabela Departamentos possui duas colunas: codigo_departamento e nome. A coluna codigo_departamento é do tipo int (int é o tipo de dados para armazenar valores numéricos inteiros no SQL Server). A coluna nome é do tipo varchar (varchar é o tipo de dados para armazenar caracteres no SQL Server) e possui um tamanho máximo de 30 caracteres, ou seja, se alguém tentar inserir um departamento cujo nome tenha mais de 30 letras ou números não irá conseguir. No diagrama também podemos perceber que a coluna codigo_departamento da tabela Departamentos está destacada, isto significa que esta coluna é a chave primária desta tabela. Esta chave primária garantirá que não existirão departamentos com o mesmo código. A tabela Funcionarios também possui colunas de diversos tipos de dados, como por exemplo, a coluna salario que é do tipo money (money é o tipo de dados para armazenar valores monetários no SQL Server). A chave primária da tabela Funcionarios é a coluna matricula que servirá para identificar unicamente cada funcionário. Observe que existe um relacionamento entre as tabelas Departamentos e Funcionarios, pois cada funcionário deve pertencer a um departamento. Este relacionamento ocorre através da coluna codigo_departamento que está na tabela Funcionarios. Esta coluna diz a que departamento o funcionário pertence, ou seja, ela é uma referência à coluna codigo_departamento da tabela Departamentos. Sendo assim, podemos afirmar que a coluna codigo_departamento da tabela Funcionarios é uma chave estrangeira. A chave estrangeira garantirá que não existirão funcionários sem departamentos, ou o que chamamos de registros órfãos. Este relacionamento é do tipo 1 para N (ou um-para-muitos), pois cada departamento pode possuir 1 ou mais funcionários e cada funcionário só pode pertencer a 1 departamento. A modelagem de dados consiste basicamente em organizar os dados em tabelas relacionadas. É muito importante definir e criar um diagrama ou modelo de dados para que você possa projetar e identificar possíveis falhas em sua estrutura de armazenamento de dados. Evidentemente, tabelas bem projetadas são essenciais para o sucesso dos bancos de dados. Todos os ônibus possuem um motorista e um trajeto diferente. O administrador desta rodoviária precisa de um sistema que cadastre as empresas, os ônibus e os motoristas. Este sistema deve armazenar o nome e o código de cada empresa, o número, a empresa, o motorista e o trajeto de cada ônibus e o nome, número, idade, sexo e salário de cada motorista. Antes de iniciar o desenho do diagrama, precisamos identificar as entidades, os atributos e os relacionamentos envolvidos no contexto do sistema. Os atributos são as informações ou características de cada entidade. Por exemplo, os atributos da entidade empresas são: código e nome; enquanto os atributos da entidade motorista são: nome, número, idade, sexo e salário. Os relacionamentos, como o próprio nome diz, são as relações entre entidades. Por exemplo, precisamos saber qual é o motorista de cada ônibus e a que empresa o ônibus pertence. Estes relacionamentos dão origem a novos atributos que identificam a dependência de uma entidade. No caso da entidade ônibus, será preciso dois novos atributos, um para identificar o motorista e outro para identificar a empresa. Com isto, para cadastrar um ônibus será necessário primeiro cadastrar a empresa e o motorista. As entidades serão as tabelas e os atributos serão as colunas das tabelas. Os relacionamentos serão as colunas que impõem a relação entre as tabelas e consequentemente a integridade dos dados. Sendo assim, criamos o seguinte modelo de dados:
Como em quase tudo, o planejamento e o projeto são a parte mais chata. Entretanto, esta fase é fundamental para o sucesso de uma boa aplicação. Vamos agora implementar o modelo de dados que acabamos de construir, ou seja, vamos criar fisicamente as tabelas em um banco de dados do SQL Server. Abra o Enterprise Manager para podermos criar nossas tabelas. Vamos criar um novo Banco de Dados exclusivamente para este “sistema” da rodoviária. Para isto, expanda o ícone do servidor e clique com o botão direito do mouse sobre a opção Databases. Na caixa de diálogo que surgirá, clique em New Database...
Em seguida, será exibida a janela Database Properties. Preencha a caixa de texto Name com o nome do novo banco de dados, em nosso caso: “Rodoviaria” (sem aspas). Clique em OK para criar o novo Banco de Dados.
Após criar o banco de dados Rodoviaria, acesse a seção Tables para criarmos as tabelas do modelo de dados. Você perceberá que já existirão outras tabelas criadas no Banco de Dados Rodoviaria. Estas tabelas “sys_alguma_coisa” são para uso exclusivo do SQL Server, portanto, ignore-as. Clique com o botão direito sobre a opção Tables e em seguida em New Table...
Será exibida uma tela para criarmos a estrutura da nova tabela. Vamos criar primeiro a tabela “Empresas”, para isso basta seguir as especificações do modelo que criamos anteriormente. Digite o nome da primeira coluna da tabela Empresas que, segundo nosso modelo, é “cod_empresa”. Em Data Type escolha o tipo de dado “int” e em seguida clique no ícone que possui a figura de uma chave para especificar que esta coluna é a chave primária desta tabela.
O tamanho de uma coluna do tipo int é por padrão igual a 4 e não pode ser alterado. Este 4 não representa a quantidade de algarismos que poderão ser armazenados e sim a quantidade de bytes em disco que esta coluna pode ocupar. O tipo int suporta números inteiros positivos ou negativos que vão de -2.147.483.657 à +2.147.483.657, ou seja, dá para armazenar muitos números nesta coluna. Preencha agora o nome da segunda coluna da tabela Empresas: “nome”. Em Data Type selecione o tipo varchar e defina o tamanho máximo de 30 caracteres em Length. Diferentemente do tipo int, o tamanho de uma coluna do tipo varchar especifica a quantidade máxima de caracteres permitidos nesta coluna. Desmarque a opção Allow Nulls (Permitir nulo) da coluna “nome”, pois esta coluna deve ter preenchimento obrigatório. A coluna “cod_empresa” também é obrigatória, mais como já definimos que ela é chave primária, automaticamente o SQL Server desmarca a opção Allow Nulls, pois a chave primária sempre é obrigatória. Com isto, criamos a estrutura da tabela “Empresas” de acordo com o que foi especificado no modelo de dados.
Só falta definir o nome da tabela, para isto clique sobre o ícone que possui a figura de um disquete. Esta opção serve para salvar as alterações feitas e para definir o nome da tabela quando isto ainda não foi feito. Obviamente, salve a tabela com o nome: Empresas.
Pronto, a tabela foi criada! Feche a janela de edição e você verá a nova tabela na lista de tabelas do banco de dados Rodoviaria.
Caso você precise alterar ou corrigir alguma coisa na estrutura da tabela, basta clicar sobre ela com o botão direito e em seguida clicar em Design Table.
Você deve ter percebido que fica um pouco confuso visualizar nossa tabela entre um monte de tabelas de sistema do SQL Server. Caso você deseje que estas tabelas do SQL Server não sejam exibidas, faça o seguinte: Clique com o botão direito do mouse sobre a opção que representa seu servidor e depois clique em “Edit SQL Server Registration properties...”.
Na janela de propriedades, desmarque a opção: “Show system databases and system objects” e clique em OK. Isto fará com que todos os databases e objetos de sistema do SQL Server não sejam exibidos no Enterprise Manager tornando a tela bem mais “limpa”.
Prosseguindo com a construção das tabelas de nosso modelo de dados, vamos agora criar a tabela “Motoristas”. Clique com o botão direito sobre a opção Tables do banco de dados Rodoviaria e em seguida em New Table... Crie a estrutura da tabela “Motoristas” seguindo as especificações do modelo de dados assim como fizemos com a tabela “Empresas”. Preencha corretamente os nomes das colunas e selecione os respectivos tipos de dados. Não esqueça de definir o tamanho de 40 caracteres para a coluna “nome” e de especificar a coluna “num_motorista” como chave primária da tabela. A coluna “sexo” possui um tamanho máximo de 1 caractere, pois iremos armazenar apenas “M” ou “F”. Após criar a estrutura, salve a tabela como nome “Motoristas”.
A próxima (e última) tabela que iremos criar é a tabela “Onibus”. Deixamos esta tabela por último pelo simples fato dela “depender” das outras duas, ou seja, ela possui chave estrangeira para as tabelas “Empresas” e “Onibus”. Nós poderíamos ter criado ela antes das outras, só que depois teríamos que editá-la para referenciar as chaves estrangeiras. Assim, com as outras tabelas já criadas, iremos fazer tudo de uma vez. Novamente clique com o botão direito sobre a opção Tables do banco de dados Rodoviaria e em seguida em New Table... Preencha os campos de acordo com o modelo de dados.
Após preencher os campos, salve a tabela como “Onibus”, mas deixe a janela de edição aberta para que possamos configurar as chaves estrangeiras. Clique sobre a opção “Table and Index Properties” que está representada através de um ícone com uma figura de uma mão segurando um pedaço de papel.
Na janela que surgirá, selecione a guia “Relationships” (Relacionamentos).
Nesta tela é que iremos criar nossas chaves estrangeiras. Só para lembrar: uma chave estrangeira é uma coluna que “aponta” para outra coluna de uma outra tabela. A chave estrangeira somente pode apontar para uma coluna que seja chave primária ou que possua uma chave única (este conceito não será abordado neste curso). O termo “Chave Primária” é mais conhecido como “Primary Key” ou apenas “PK” e o termo “Chave Estrangeira” é conhecido como “Foreign Key” ou simplesmente “FK”. Para criar nossa primeira chave estrangeira, clique sobre o botão “New”. Na caixa de seleção “Primary key table”, selecione a tabela Empresas e logo abaixo selecione a coluna “cod_empresa”. Na caixa de seleção “Foreign key table”, selecione a tabela “Onibus” e em seguida selecione a coluna “cod_empresa”. O que acabamos de fazer foi: dizer para o SQL Server que a coluna “cod_empresa” da tabela Onibus está ligada à coluna “cod_empresa” da tabela “Empresas”. Veja abaixo como ficou a tela após a configuração:
Agora vamos criar a chave estrangeira para a tabela “Motoristas”. Clique novamente sobre o botão “New” e repita o procedimento apontando a coluna “num_motorista” da tabela “Onibus” para a coluna “num_motorista” da coluna “Motoristas”.
Clique sobre o botão “Fechar” e depois salve as alterações clicando sobre o botão com o ícone de um disquete. O SQL Server informará que as alterações efetuadas afetarão outras tabelas.
Clique em “Yes” e Pronto! As chaves estrangeiras foram configuradas com sucesso! Nós podemos ter certeza de que os relacionamentos foram criados corretamente através da opção Diagrams do banco de dados Rodoviaria. Nesta opção podemos criar diagramas com as tabelas existentes no banco de dados. Neste diagrama o SQL Server exibe o relacionamento existente entre as tabelas. Clique com o botão direito do mouse sobre a opção Diagrams do banco de dados Rodoviaria e em seguida clique sobre a opção New Database Diagram...
Será exibida a tela do assistente de criação de diagramas do SQL Server.
Clique em Avançar para exibir a próxima tela onde iremos selecionar as tabelas que farão parte do nosso diagrama.
Selecione todas as tabelas e clique no botão “Add >”. Em seguida, clique em Avançar e na tela seguinte em Concluir. Então o SQL Server montará o diagrama com as tabelas e seus respectivos relacionamentos. Com base no diagrama montado pelo SQL Server podemos concluir que criamos as tabelas e os relacionamentos corretamente de acordo com nosso modelo de dados. Modelo de dados Diagrama gerado pelo SQL Server |
|||
| « Anterior | Δ Página principal | ¤ Índice | Próxima » |
* Você pode baixar (fazer download) do conteúdo completo deste curso, em formato PDF, com 334 páginas, comprando o seguinte e-book:
DELPHI COM BANCO DE DADOS
|
MEGA FORMAÇÃO EM INFRAESTRUTURA DE TI (Online, Vitalício, Prático e Atualizado)! |
|
|
NÃO PROCURE VAGAS, SEJA PROCURADO! |
|
Para Todos os Detalhes, Acesse:
https://juliobattisti.com.br/curso-infra-ti.asp
|
Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434
Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208
Todos os direitos reservados, Júlio Battisti 2001-2026 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI