E aí [Música] o Olá pessoal bem-vindos à disciplina de banco de dados essa nossa primeira aula é um dia falar sobre uma visão geral sobre o banco de dados então uma coisa que eu gosto sempre de falar no começo que é importante é muito importante a gente saber né é que o banco de dados na verdade é uma coleção de dados mas que esses dados né representa um fato fato na nossa vida real tem como você fazer uma transação no cartão de crédito por exemplo né E você efetivamente fez o pagamento comprou um produto estava
numa loja tals um cartão de crédito específico toda essa informação e guardada no banco de dados isso é um fato que porque a gente guarda que a gente armazena essa informação do banco de idade pra que a gente no futuro possa recuperar eu posso daqui 5 10 20 anos saber que naquele momento é feita a transação de banco de dados Isso é pra qualquer outro fato do nosso dia a dia né então a gente vai armazenando dados em banco de dados para que no futuro a gente possa recuperar e saber quando que aconteceu né E
como que aconteceu as informação com mais possibilidades detalhe que a e armazenar é muito importante saber isso que quando a gente trata um banco de dados tem sempre na cabeça nós estamos registrando Fatos e esses fatos efetivamente possam ser recuperados no futuro Ou seja no banco de dados a gente armazena a gente persiste um dado a gente grava um dado persistência isso é gravar um dado né que tem um significado implícito Ou seja que a gente precisa recuperar no futuro bom o banco de dados pessoal de desrespeito algum aspecto do mundo real ele é criado
com foco em um propósito específico Então o que a gente tá falando a gente vai desenvolver um sistema quando tiver montar uma estrutura um projeto de banco de dados normalmente né a gente tá fazendo o que a gente está fazendo uma análise sobre um um cenário específico do mundo real sobre alguma coisa que acontece no mundo real e a gente tá captar o máximo de detalhes possíveis ali né e transformar isso num projeto de banco de dados é assim que funciona qualquer projeto de banco de dados que em geral não existe uma estrutura lógica que
vai dar um significado aquele contexto para a gente poder estruturar esses dados bom muito importante que a gente saiba que há uma Independência entre dados e programas então dados é uma coisa e programa saúde com ele vai desenvolver um sistema né o programador que vai desenvolver a parte de programação e interface um sistema né Ele trabalha num contexto e o banco de dados é um outro contexto quando eu vou usar um sistema gerenciador de banco de dados a gente vai falar um pouquinho mais sobre isso durante essa primeira aula agora né você nem saber de
novidades ele tem uma porção de operações que já são inerentes ao sistema gerenciador Então não é simplesmente só um banco de dados tem muitas outras operações que ele já faz ali e já tá acostumado a fazer então quando a gente tem um aplicação ao sistema né uma ferramenta que não usam um sistema gerenciador de banco de dados que que acontece ele tem que se preocupar com tudo se preocupar com de Kato ele tem que preocupar com controle de acesso com a segurança dos dados aí então por quê Porque aí nós vamos estamos usando o sistema
gerenciador agora a gente usa um sistema gerenciador de banco de dados ele já traz uma porção de funcionalidade que eu não preciso me preocupar na programação ou no sistema E aí o que que vai acontecer essa aplicação né ela vai simplesmente acessar o banco de dados e quando necessário vai mandar disparar procedimento que já acontece nos temos gerenciadores Já tá pronto para fazer né então eu já tenho automaticamente um controle de usuário já tem automaticamente um controle para fazer backup fazer Store entre outras tarefas que são do sistema gerenciador de banco de dados do box
é a o sistema gerenciador não é permite que operações sobre os dados sejam definidas de maneira independente então da aplicação então eu posso executar tarefas diretamente no banco já pode executar uma consulta diretamente não preciso passar por um sistema você temos gerenciadores de banco de dados permitem que as operações sobre os dados serão definidos de maneira independente da aplicação a gente pode executar tarefas direto no banco de dados sem se preocupar com aplicação então eles são instâncias diferentes as aplicações podem chamar essas instâncias por meio de seu nome cê argumento tal e os preocupam com
essas operações são implementadas Então quem está desenvolvendo um sistema não está preocupado porque se chama uma função do banco de dados não dá para o padre como é que essa função foi implementado e falar carácter específica dos temas gerenciador de banco de dados né porque quem tá programa não se preocupar com isso porque o próprio sistema gerenciador já vai fazer esse processo bom falar sobre a abstração de dados pessoal então para que seja possível né usar as funcionalidades de um sistema gerenciador de banco de dados me passa uma quantidade é muito importante que se conheça
o modelo de dados Então esse modelo de dados normalmente apresentado para os usuários como uma representação conceitual e é super importante esse modelo de dado conceitual é normalmente é consumido por uma lista de dados e suplementação física realizada no sistema gerenciador então percebam que quando a gente vai começar um projeto de banco de dados né quando a gente vai discutir com as pessoas que fazem parte daquele cenário daquele mini mundo né discutiu que é importante o que não é a gente começa a fazer uma representação como cento ao a respeito né entender o que que
faz parte quais são os detalhes que fazem parte do mundo das que essa representação conceitual é que nos vai dar né os primeiros passos aí para que a gente possa depois fazer com que isso vire uma implementação física para que a gente possa efetivamente registrar esses dados no sistema gerenciador de banco de dados então isso faz parte de um projeto e dentro de um contexto de banco e vão perceber que muitos casos a tipos de usuários diferentes o lindo para o mercado se não perceber que por exemplo quem em algumas empresas né várias Essas funções
são executadas pela mesma pessoa e não é primeiro tamanho da empresa que dentro do time de sistema que a gente tem do time de banco de dados que a gente tem pode ser que a gente tenha às vezes uma única função sendo executada por mais de uma pessoa eu tenho lá então por exemplo os administradores de banco de dados almente o DB a e já uma pessoa só mas pode ser com um grande time de uma grande empresa eu tenho mais de um bebê a ou pode ser que numa empresa pequena o DB a seja
o mesmo que o projetista né que é o cara que vai desenvolver o design do banco de dados que a gente também tem os analistas de sistemas programadores pessoal nós sistema novamente a quem faz o papel de ajudar no projeto de implementação do projeto de banco de dados e programadores que efetivamente vai desenvolver o programa que vai acessar esses dados e por fim né Acho que usuários finais usuários finais é efetivamente quem vai usar o Temer a gente é usuário tempo todo né quando a gente vai ao banco por exemplo né então a gente acessa
um caixa eletrônico a somos usuários do banco de dados quando a gente acesse o nosso e-mail a gente é usuário do sistema de banco de dados para a Gente Tá acessando então gente é usuário também o tempo todo e eu queria falar um pouquinho sobre as abordagens vantagens abordagens baseadas em Sistemas gerenciadores de bancos de dados então eu falei para vocês que seja gerenciador de banco de dados né É é um sistema que contempla né várias funcionalidades Inclusive a partir de armazenamento de banco de dados e essa é uma da do dos as ferramentas mais
utilizadas hoje em dia para banco de dados e manda as coisas importante a gente saber o que se diferentes Instância do mesmo dados armazenados em locais diferentes e gerenciadas pelo aplicações diferentes a gente tem o risco que de criar inconsistência de dados então a parte de controle de redundância né para evitar Essa inconsistência é uma das vantagens que a gente tem que usar um sistema gerenciador de banco de dados então quê que acontece um sistema gerenciador para facilitar em um servidor né E aí todos os acessos acontece nesse servidor evitando o que a gente tem
a dados em vários lugares Depois tenta consolidar a cidade então o controle de consistência o controle de redundância né o sistema gerenciador de banco de dados garante isso para gente outra coisa muito importante ao controle de acesso então quando a gente o sistema gerenciador de banco de dados né ele já oferece um subsistema de controle de acesso de autorização e segurança isso dá para quando a gente tá desenvolvendo um projeto né a garantia de que isso vai funcionar muito bem então os bancos de dados que a gente tem no mercado hoje controla muito bem essa
parte de segurança e o que acontece quem vai desenvolver um sistema não precisa ficar preocupado em como que vai fazer a gestão desse controle de acesso por quê porque pode se aproveitar justamente disso controle de acesso que o próprio banco de dados já faz então o sistema gerenciador de banco de dados já nos dá esse controle de acesso de forma muito bem feita e outra coisa importante aí que é uma vantagem da abordagem de sistema gerenciador de banco de dados né é a persistência para programas estruturas de dados ou seja códigos e estruturas de dados
são armazenados e gerenciados pelo sistema gerenciador de bancários como objetos né são nomeados e podem ser invocados alterados excluídos a partir de funcionalidades oferecidas pelo sistema Então quando você tem um sistema gerenciador de banco de dados você tem lá os seus objectos todos nomeados as tabelas as vios os procedimentos né as ferramentas que ele tem lá todos os as funcionalidades que ele tem isso tem nome e a gente pode o que a partir de um programa A partir de interface as conectar nesse banco de dados e fazer o quê executar esta atividade executar essas funcionalidades
Então essa persistência onde a gente persiste o dado a né é muito importante isso aqui é um dos fatores mais relevantes que a gente tem como e para abordagem baseada em Sistemas gerenciadores de banco de dados outra coisa eficiência no processo de consulta quando a gente vai trabalhar com o sistema de gestão de banco de dados né a gente sabe que a funcionalidade de consulta e quando ele vai emitir uma requisição de consulta formalizados ela funciona normalmente muito bem então novamente está faz o sistema gerenciador de banco de dados faz a gestão de índice de
memória a utilização da consulta então todo esse processo o próprio sistema gerenciador já faz eu não preciso do meu programa né é claro que a gente vai ter processo quente para melhorar a partir de consulta para ela ter mais eficiência mas muito dessa eficiência é gerida organizada pelo próprio tema gerenciador de banco de dados adianta ficar se preocupando tanto com isso é claro que para consultas maiores e técnicas para fazer para que ela esteja eficiente né mas a parte de indigenização de memória o sistema gerenciador de banco de dados faz isso muito bem para gente
e outra coisa é um sistema de um rendimento de backup e Recuperação quando você usa um sistema gerenciador normalmente ele já tem lá uma das Ferramentas ele uma das implementações aí a Justamente esse processo de backup e Recuperação então Isso facilita o nosso processo Porque finalmente ele tem uma tarefa de agendamento Você pode agendar as várias as mais variadas maneiras que pode ser feito esse processo de backup e depois o processo de recuperação tão importante né sempre se fizerem um backup pessoal testa e Store testa para ver se funciona efetivamente tá então isso aqui é
uma dica importante enquanto trabalham com uma habilidade outra é a garantia das restrições de integridade o próprio sistema gerenciador de banco de dados a gente vai ver muito a gente vai falar muito sobre restrição de integridade daqui para frente né a garantia dessa restrição feita pelo seu gerenciador de bancos Dá Uma tranquilidade para gente para evitar o que que a gente excluam dado que não poderia excluir o que a gente inclua um dado que ter o texto a gente inclusão gente vai tratar muito sobre essas questões de restrição daqui para frente nas próximas aulas isso
não perceber que os temos saber faz isso para a gente muito bem nos ajuda muito então as vantagens garante padrões reduz o tempo de desenvolvimento de aplicações por essa flexibilidade e disponibilidade prova promove economia de escala então é sempre muito mais fácil é muito mais tranquilo usar um sistema gerenciador de banco de dados Mas podem perguntar mais quando que eu não uso do sistema gerenciador de banco de dados e muitas oportunidades às vezes eu quero simplesmente né fazer um programa que guarde dados em arquivos né ou qualquer outra maneira eu tenho em outras maneiras de
guardar dados que não seja via um sistema gerenciador de banco de dados E aí tem toda essa preocupação de tudo que eu falei para trás tá tendo backup recuperação tem controle de acesso tem o apoio de integridade como é que é um polimento isso então quando eu trato de uma forma coisa para com arquivos não tem todas as vantagens que eu tenho em um sistema gerenciador de banco de dados i e agora nós vamos começar a falar um pouquinho sobre modelos de dados Então a primeira coisa que eu queria falar para vocês É sobre o
modelo de alto nível com modelos de dados conceituais então esses modelos né ele tem papel de fornecer conceitos que são próximos a forma como os usuários percebem os dados um principal exemplo aí que a gente tem de modelo de alto nível modelo entidade-relacionamento ou mulher como é chamado esse modelo é quando por exemplo um projetista do banco de dados ele vai discutir com a comunidade com as pessoas que fazem parte ali daquele cenário não é quais são as informações importantes e esse modelo de alto nível é um modelo que possa ser compreendido tanto por quem
faz o banco de dados como ter as pessoas né que fazem parte daquele contexto que quer entender realmente qual dado que eu tô separando o que que é importante que é que não é é uma nela deu modelar isso e apresentava essa pessoas para poder que é uma o primeiro passo aí do projeto de banco de dados Então esse modelo de altura é importante uma coisa é que a gente sempre importante saber é que esse modelo de alto nível e independente da implementação física que vai ser feita é permitido independente do sistema gerenciador de banco
de dados que você vai escolher futuramente tem um modelo conceitual mesmo é a gente não tá pensando aí no como que a gente vai implementar está pensando sentimentos que tem que ser armazenado Quais são as informações importantes daquele contexto é para isso que serve um modelo de alto nível já os modelos de baixo nível modelos de dados físicos né fornecem conceitos que descreve em detalhes com os dados são armazenados no meio de persistência Ou seja é como a gente vai formatar o registro como que a gente vai ordenar como que ele vai fazer as formas
de acesso o modelo de baixo nível 1 nível de que quando eu tô falando efetivamente do sistema gerenciador de banco de dados né como que eu vou né organizar isso né Que tipo de dado que eu vou escolher efetivamente então já é um modelo de baixo no mais né escrito ao pessoal que tá fazendo parte do desenvolvimento do projeto de banco de dados i e eu tenho também um modelo de dados de representação e implementação que é um modelo intermediário aí né entre o alto nível e o baixo nível né que é um modelo que
fornece conceitos que são compreensíveis Por parte dos usuários mas que não estão longe da maneira como os dados são armazenados no meio da persistência Então se uma perceber que nós vamos tratar o modelo relacional Não é esse é um grande exemplo o modelo relacional não perceber que o modelo relacional é o que a partir do momento que eu faço modernizar de acionamento que modelo conceitual eu preciso começar a especificar detalhes que possam ser implementados no banco de dados por quê Porque eu mandei o conceito alguém sempre ele pode ser implementado no banco está Tô precisando
intermediário que é justamente esse modelo relacional não é onde eu específico mais características do mundo real mas também características do banco de dados no nível físico ali para que isso possa ser implementado então vocês vão perceber que durante a nossa disciplina isso São fases que a gente vai pensar na estruturação de e para que a gente possa fazer o melhor banco de dados é possível agora falar para vocês sobre esquemas e instâncias e estado do banco de dados o que que é um esquema É Serpente pensar no termo esquema elas são pensando a estrutura do
banco de dados né então quando está falando da descrição do banco de dados nunca está falando de projeto projetar estruturar a informação que vai ser importante que promoção que não vai ser planta que que vai estar no banco de dados que não vai estar a gente tá falando de esquema essa parte do esquema porque a única a gente definiu que a gente conseguiu chegar num consenso que tá que o projeto tá feito né ela não vai ficar mudando daí para frente quando a gente tiver já usando o banco de dados então o esquema é essa
estrutura agora a Instância que a gente pode tratar como o estado do banco de dados né a gente tá tratando do que ela tem um dos dados armazenados no banco de dados em um momento particular ou seja ainda quebrado momento pode ser que eu tenho um conjunto de dados armazenado ali e amanhã eu vou aí apaga todos os estados ou seja o meu a minha Instância já é outra e no outro dia eu consigo inserir o atualizar mais dados colocar mais dados ou seja o conjunto de dados que estão dentro da minha estrutura é que
formam a Instância do banco de dados a questão é o estado do meu banco de dado bom o banco de dados a gente também tem as chamadas linguagens é que tá chovendo servido entre duas linguagens uma é o que a gente pode linguagem e definição de data o de dll é usada atenção para definir o esquema do banco Jardim acabou de falar de esquema que aí a estrutura do banco de dados então atualmente pode encontrar a sdl que a linguagem definição de armazenamento EA vdl que a linguagem de definição de visão que a gente tenta
né linguagem de manipulação de dados que mexer justamente com a Instância do banco de dados é então é usada para executar instruções de recuperação inserção exclusão e modificação os dados estão bdr mexe com a estrutura de ML mexe com a manipulação dos dados que você vai receber o dado recuperar trabalhar o dado efetivamente aí e já da linguagem de Mr nação falar disso mais para frente também aqui pessoal essa imagem eu queria mostrar um pouco para vocês né Vocês vão perceber que tem uma linha pontilhada aqui que essa linha aqui ó bom né que divide
entre a parte de cima independente do sistema gerenciador de banco de dados e a parte de baixo quando a gente já tem a quando a gente já escolheu o sistema gerenciador de banco de dados então uma perceber que principalmente aqui ó onde a gente tem essa a minha aqui do contexto do mundo real Então a gente tem aqui análise a coleta análise de requisitos projeto conceitual isso é feito que antes de eu escolher um sistema gerenciador de banco de dados apartamento que eu faço é esse esquema conceitual e que eu vou começar definir o projeto
lógico começa o pensar já no sistema gerenciador específico E aí quando eu penso nos temos de mencionar o específico é quando eu vou definir o projeto fiz não perceber que tem essa divisão né coisas durante o projeto que são feitas antes de escolher os temas gerenciador e coisas que são feitas depois de escolher um sistema gerenciador aqui é mais para vocês entenderem estrutura de um sistema aí então novamente com ele vai trabalhar com o sistema é importante lembrar que a gente tem aplicação ele tem usuário né nesse contexto aqui a gente tem as aplicações aqui
ó e aqui é o meu sistema gerenciador o meu sistema gerenciador de banco de dados né com onde eu tenho é os metadados onde eu tenho os dados armazenados estudem a infraestrutura e os também saber com todas as suas aplicações com toda a funcionalidade disponíveis para serem acessados pelo sistema é bom aqui é um pouquinho para compreender aí né Quais são as tarefas E como que funciona o sistema gerenciador de banco de dados por dentro e perceber aí que novamente o time de BH né tá mais preocupado com a parte de estrutural a parte de
instruções e acessar os mercados depois ele tem os usuários casuais os programadores trabalham mais com aplicação e depois de ter usuários finais que efetivamente quem acessa esse daqui é uma visão geral que vale a pena vocês voltarem sempre aqui para ver quais são essas tarefas que a gente tem no dia a dia de um banco de dados bom é a gente pega essa primeira aula nem eu queria que você tivesse noção sobre essa estrutura funcional do banco de dados o que o que é Estância O que é esquema a gente falou se o que é
um sistema gerenciador de banco de dados nem a importância de conseguir separar a parte estrutural conceitual que é feita antes mas definir o termo gerenciador de banco de dados e o que é feito no projeto depois que a gente já definiu os tempos gerenciador de banco de dados a gente se vê na hora do E aí [Música] E aí [Música]