[Música] Olá, meu nome é Sara. Eu estou aqui para trabalhar com vocês na disciplina de bancos de dados do curso de engenharia da computação da UNIVESP. Essa aula, ela tem o objetivo de dar uma visão geral da área de banco de dados e apresentar uma motivação pro uso dessa tecnologia.
Bom, então a o primeiro conceito que nós temos que estudar é o conceito de banco de dados. Pro nosso contexto, o banco de dados é uma coleção de dados. E um dado é um fato que deve ser armazenado, ou seja, persistido e que tem um significado implícito.
Quando nós trabalhamos com o banco de dados, nós estamos sempre pensando que há uma situação do mundo real que precisa ser modelada. E essa situação, ela tem um foco específico. Quando a gente precisa modelar um banco de dados, nós precisamos pensar que esses dados possuem uma estrutura lógica.
E essa estrutura lógica é importante para conferir um significado aos dados que serão armazenados. Bom, essa estrutura lógica que nós vamos construir, ela é estabelecida para que nós possamos armazenar as informações que dizem respeito àquele contexto que nós estamos trabalhando, aquele contexto do mundo real. Esse contexto, ele ficará armazenado e gerenciado em um sistema de gerenciamento de banco de dados que comumente nós conhecemos e denominamos SGBD.
Esse sistema de banco de dados ou esse sistema gerenciador de banco de dados, ele é uma coleção de programas que implementa uma série de funcionalidades que permite que esses dados que estão armazenados sejam gerenciados. Como gerenciamento, nós entendemos a manipulação desses dados e o cuidado com as restrições que nós devemos imporos dados. Então, definir um banco de dados significa criar estruturas para armazenamento dos dados e especificar as restrições que devem ser impostas a esses dados.
Além disso, esse sistema gerenciador de banco de dados, ele permite que nós possamos manipular os dados fazendo inserções de dados em um sistema e manipulação desses dados também nesse mesmo sistema. E o sistema gerenciador vai permitir que essa manipulação não atrapalhe a integridade das informações que estão ali armazenadas. Eh, exemplos interessantes, exemplos eh úteis de SGBDs são Postgre SQL e MySQL, como tecnologias que estão disponíveis para o uso do dos eh programadores e dos administradores de bancos de dados de uma maneira eh livre.
e também aqueles que são proprietários, como por exemplo, o Oracle, muito conhecido, MySQL Server, também muito conhecido. Bom, eh o uso do SGBD ou do sistema gerenciadores de bancos de dados, eles nos proporcionam algumas vantagens. E nós vamos agora eh estudar um pouco sobre essas vantagens.
A primeira delas diz respeito à independência entre dados e programas. O que significa nós termos independência entre dados e programas? Bom, se nós pensarmos em aplicações que não fazem uso dos dos SGBDs, dos sistemas gerenciadores de bancos de dados, nós estaremos falando sobre aplicações que precisam incorporar as estruturas de dados e fazer o controle de acesso a esses dados.
Fazer o controle de acesso aos dados e também incorporar as estruturas que são eh pertinentes ao armazenamento de dados. leva à necessidade do desenvolvimento de uma série de funcionalidades. Se nós usarmos os SGBDs, as nossas aplicações ou sistemas que nós construiremos para atuar sobre esses dados, não precisarão se preocupar com alguns aspectos.
Eles não precisarão lidar com o armazenamento em si e com o controle de acesso a esses dados. Dessa forma, nós podemos estar focados nas estruturas lógicas que permitirão o armazenamento mais, ah, digamos assim, o armazenamento mais estruturado e mais seguro. Bom, uma outra vantagem dos SGBDS é que eles permitem que operações sobre os dados sejam definidas de maneira independente da aplicação.
Isso significa que as aplicações podem chamar operações que já estão implementadas nos SGBDS para atuar sobre esses dados. É claro que essas aplicações implementadas, essas funcionalidades implementadas no SGBDs, são também implementadas pelos desenvolvedores, porém elas já estão ali disponíveis para aqueles outros desenvolvedores que serão os responsáveis pelo desenvolvimento das aplicações ou dos sistemas que permitirão que usuários finais tenham acesso a esses dados. Uma outra questão importante que nós precisamos dar atenção quando estamos trabalhando com banco de dados, sistemas gerenciadores de bancos de dados, é a questão da abstração de dados.
Então, para que seja possível que essas funcionalidades implementadas no SGBD atuem sobre um banco de dados, é preciso que se conheça o modelo de dados. Esse modelo de dados é usualmente apresentado através de uma de uma representação conceitual, que é uma representação que permite entender o objetivo de armazenamento de cada um dos dados que nós precisamos ter no nosso sistema. Bom, essa abstração de dados é um dos pontos mais importantes que nós estudaremos nessa disciplina, fazendo parte então da primeira fase de estudo na disciplina de banco de dados.
Quando nós trabalhamos com sistemas de bancos de dados, é importante nós definirmos alguns papéis e entender o que cada um dos profissionais ou das pessoas envolvidas no uso e na construção desse sistema precisa fazer. Então aqui nós temos quatro exemplos de classes de pessoas que vão atuar sobre esses sistemas de bancos de dados. Nós temos os administradores de bancos de dados, que são os profissionais responsáveis, principalmente pelo modelo de dados que será usado para modelar, para representar uma situação do mundo real sobre a qual sistemas computacionais serão construídos.
Nós temos os projetistas de bancos de dados. Esses projetistas atuam diretamente na proposição do modelo de dados, que é um dos assuntos que nós trataremos em mais detalhes nessa disciplina. Nós temos os analistas de sistemas e programadores de aplicação, que são os profissionais que estão preocupados com o desenvolvimento das aplicações, o desenvolvimento dos sistemas que estarão disponíveis aos usuários finais, que são as pessoas que farão uso de toda essa estrutura construída para manipulação de dados e geração de informação.
Mais especificamente em relação ao SGBD, ao sistema gerenciador de banco de dados, existem também alguns profissionais envolvidos. Nós temos aqui três exemplos. O primeiro deles, projetistas e implementadores de módulos e interfaces dos SGBDs.
Então, esses profissionais são aqueles que conhecem o funcionamento de um SGBD. internamente. E são eles os responsáveis por implementar, por exemplo, aquelas tecnologias que eu citei a alguns minutos, a tecnologia de Oracle, SQL Server, MySQL, Postgre SQL e outras tecnologias que nós temos disponíveis no mercado para uso.
Existem também os desenvolvedores de ferramentas. Esses são profissionais que também conhecem a estrutura dos SGBDs e desenvolvem as funcionalidades que são que estão disponíveis nesses sistemas para que os administradores de bancos de dados e os desenvolvedores de aplicações possam atuar. E por fim, temos os analistas de suporte para os SGBDs, que são aqueles profissionais que precisam conhecer as demandas de um sistema gerenciador de banco de dados para preparar o ambiente no qual o sistema eh atuará.
Existem uma série de outras vantagens que um SGBD traz para o profissional que trabalha com a construção de sistemas e com a modelagem de dados. Nós temos aqui agora uma série dessas vantagens e nós vamos rapidamente passar por cada uma delas. A primeira, controle de redundância.
Todos os dados estão armazenados em um único local, um único lugar e diferentes aplicações acessam a mesma instância desses dados. Ou seja, a mesma instância significa que os o mesmo valor para os dados, o mesmo valor armazenado nas estruturas lógicas que estruturam esses dados estarão disponíveis para todas as aplicações. Isso garante que nós não tenhamos e inconsistência de dados, porque se nós tivermos o mesmo dado ou a mesma informação armazenada em locais diferentes, nós podemos ter problemas de eh, por exemplo, valores diferentes, armazenados nesses locais diferentes, mas para mesmo para o mesmo dado, para a mesma informação.
Então, a primeira vantagem que nós colocamos aqui do uso do SGBD é evitar que nós tenhamos essa inconsistência de dados. A próxima vantagem é o controle de acesso. Então, o SGBD ele oferece uma série de sistemas, uma série de funcionalidades que permitem controlar o acesso aos dados de forma que apenas pessoas autorizadas tenham acesso ao valor que está armazenado nesses dados.
A próxima vantagem, persistência para programas e persistência para estrutura de dados, que nós chamamos aqui de objetos. O que significa persistência para programas? Significa que dentro de um SGBD, nós podemos implementar uma série de funcionalidades que dizem respeito a códigos, a códigos de programação que atuam sobre os dados ali armazenados e geram algum tipo de informação derivada desses dados.
Essas implementações podem ser feitas diretamente sobre a estrutura, na estrutura do sistema gerenciador de banco de dados. E aí ela está disponível para uso pelas diferentes aplicações que atuarão sobre esse sistema. Essas essas aplicações podem fazer uso desses códigos já implementados e armazenados no SGBD através de chamadas de funções, por exemplo.
A próxima vantagem é a eficiência no processamento de consultas. Bom, dentro de um SGBD, nós podemos fazer consultas. O que significa fazer consultas?
Nós podemos solicitar por informações derivadas da combinação dos dados que estão lá armazenados. E essas consultas quando realizadas no SGBD, elas são otimizadas. O SGBD possui uma série de estruturas que permite fazer uma otimização no sentido de encontrar a melhor forma de executar aquela consulta.
aquela requisição por informação dentro daquela estrutura que foi armazenada para organizar os dados dentro do SGBD. Outra vantagem do uso de sistemas gerenciadores de banco de dados é o oferecimento de sistemas de backup e recuperação. Essa é uma vantagem bastante interessante porque a ela proporciona segurança, confiabilidade em relação aos dados que estão armazenados no sistema.
Se houver alguma falha de software, falha de hardware, o sistema gerenciador de bancos de dados é capaz de se recuperar e colocar o sistema ou os dados novamente disponíveis de uma maneira consistente, de uma maneira íntegra. É também possível fazer backup desses dados e implementar uma estrutura de persistência que seja segura com replicações desses dados em diferentes locais. Por exemplo, uma outra vantagem, e esta é uma vantagem que nós vamos estudar com bastante detalhe nessa disciplina, é a garantia da restrição de integridade.
Os dados armazenados em um banco de dados, eles estão associados a regras que precisam ser seguidas. E quem vai garantir que essas regras estão sendo seguidas é o próprio sistema gerenciador de banco de dados. É claro que essas regras poderão ser seguidas pelo sistema se nós projetarmos o nosso banco de dados de uma maneira inteligente, de uma maneira consistente.
Por fim, nós temos aqui algumas outras vantagens que nós eh daremos uma atenção também no decorrer da disciplina, que são garantia de padrões, redução do tempo de desenvolvimento das aplicações, fornecimento de flexibilidade e disponibilidade para esses dados e a promoção da economia de escala. Bom, uma das um dos conceitos que nós comentamos é o conceito de abstração de dados. E nós comentamos que esse conceito ele se materializa na modelagem do dado que nós queremos armazenar no sistema.
Essa modelagem diz respeito àquela estrutura lógica que nós vamos estabelecer para que os dados sejam persistidos no sistema de forma íntegra. Nós temos aqui eh a especificação de níveis de modelos. O primeiro nível, que é o modelo de alto nível ou modelo de dados conceitual, é o nível onde nós construímos o que chamamos de, por exemplo, de modelo entidade de relacionamento.
Esse modelo, ele fornece estruturas que permite explicar como os dados deverão ser estruturados. E essas estruturas elas são estabelecidas no modelo de acordo com as regras de negócios que nós vamos ter que futuramente implementar em um sistema de banco de dados que usará esse dado. Esse banco de dados que nós estamos modelando.
São modelos que fornecem conceitos que são próximos à forma como os usuários percebem os dados. Então, uma das grandes vantagens de se usar o modelo conceitual de alto nível é que é possível explicar aos usuários que não necessariamente são profissionais da área de computação, como esses dados estão armazenados e eles terão condições de validar esse armazenamento, essa estrutura. O outro nível é o nível, é o baixo nível ou modelo de dados físicos.
Nesse modelo, nós temos então especificado o formato dos registros, a ordenação ou as formas de acesso a esses registros, sendo que registros são as estruturas que armazenam os dados. E por fim, nós temos também um modelo intermediário. Ele é um modelo que se aproxima do modelo físico, já com algumas especificações que permitirão a implementação do modelo de dados no sistema gerenciador de banco de dados, mas que também são compreensíveis por parte dos usuários em um nível um pouco mais de um uma complexidade maior do que a compreensão que se dá no modelo entidade e relacionamento.
Outro conceito importante na área de banco de dados é o conceito que diz respeito ao esquema eh às instâncias e ao estado do banco de dados. esquema é uma descrição do banco de dados, é especificado durante o projeto de dados e não é esperado que sofra mudanças frequentes. Então, o que nós temos que pensar quando nós estamos modelando um um banco de dados é que nós teremos que que criar um esquema que representa a estrutura lógica que esses dados terão que seguir após persistidos.
E se nós não tivermos a consciência de que estamos fazendo o melhor modelo para aquele contexto, nós podemos ter problemas futuros, pois não é esperado que se há que que esse modelo que ess que esse esquema sofra mudanças depois que ele já está em uso. O outro conceito é o conceito de instância ou estado do banco de dados, que diz respeito ao conteúdo que está armazenado no banco de dados em um determinado momento do tempo. Então é como se fosse uma foto, um instantâneo dos dados em um determinado momento.
Diz respeito então ao conteúdo armazenado. E esse sim muda com o uso do sistema. Nessa disciplina, nós também temos que dar atenção às linguagens que são usadas no banco de dados, com atenção especial à linguagem de consultas.
Então, nós temos a linguagem de consulta muito famosa chamada SQL, que será estudada nessa disciplina e que ela pode ser dividida em basicamente duas partes, a DDL e a DML. A DDL é a parte dessa linguagem ou as estruturas dessa linguagem que nos permitem nos permite definir aquela estrutura lógica que nós definimos no modelo conceitual. E a DML são as estruturas que nos permite acessar esses dados fazendo recuperação ou extração de informação, inserção, exclusão e modificação dos dados.
Então, de forma resumida, nós precisamos entender que o nosso o nosso contexto de banco de dados, ele diz respeito à especificação de um sistema. É a parte de especificação de um sistema computacional que eh nos permite cuidar da parte de estruturação dos dados. Então aqui nós temos uma linha pontilhada bastante importante que eu quero chamar a atenção, que é as as ações que estão localizadas acima desta linha, elas dizem respeito a ações que podem ser executadas independente da tecnologia que será usada no sistema gerenciador de banco de dados.
E o que está abaixo são ações que nós só podemos executar quando nós já temos a escolha do SGBD que nós vamos implementar o nosso modelo. Aqui nós temos uma estrutura de sistemas de bancos de dados, onde nós mostramos que há as aplicações, o software gerenciador de banco de dados com uma série de funcionalidades e os dados persistidos que são os valores das informações que os sistemas usarão, as aplicações usarão e também informações sobre essas informações usadas pelo próprio SGBD. Essa figura nos mostra a estrutura interna de um SGBD e nós vamos utilizar essa estrutura durante a nossa disciplina.
Por enquanto, nós teremos um foco maior na parte de estrutura dos dados, mas depois vamos ver algumas funcionalidades internas do SGBD. Então, por fim, aqui nós temos uma relação, eh, um resumo da dos conteúdos que nós vamos trabalhar na disciplina de bancos de dados. e ela fica disponível paraa consulta de vocês sempre que vocês acharem necessário.
Esses slides estão baseados nessa bibliografia. É a bibliografia que nós estamos usando na disciplina. E nós terminamos aqui a nossa primeira aula deste curso.