começando a aula de hoje onde eu vou comentar sobre um termo uma sigla que muito tem aparecido nas provas de concurso que é a sigla sgbd Mas qual o significado dessa sigla sgbd pois bem pessoal isso tem a ver com banco de dados sgbd a sigla para sistema gerenciador de bancos de dados ou ainda sistemas gerenciadores de bancos de dados e quando a gente fala sobre um sgbd Na verdade ele representa programa que são utilizados para gerenciar a estrutura e as informações dos bancos de dados por isso que nós temos sistemas gerenciadores de bancos de
dados tá no próprio nome ele gerencia o banco de dados ele gerencia principalmente a estrutura e as próprias informações que lá estão armazenadas nos bancos de dados as funções de um sgbd incluem transformar e apresentar os dados controlar o acesso de múltiplos usuários de mú usuário e também prover interfaces de comunicação para acesso ao banco de dados outra coisa muito importante é que os programas usados em o sgbd permitem a criação dessas estruturas de dados a manutenção desses dados o próprio gerenciamento das transações que são efetuadas no banco de dados e também por fim a
extração de informações para a realização de consultas relatórios análises entre outros perfeito agora avaliando um pouquinho aqui comigo a ideia do sgbd nós podemos entender através de um modelo gráfico que eu montei aqui para vocês a ideia conceitual Então imagina que eu tenho uma determinada base de dados E aí eu tenho um sistema gerenciador de banco de dados Isto é um sgbd que funciona como um intermediário entre as aplicações e a base de dados então nós podemos dizer que o sgbd acaba gerenciando uma coleção de dados que estão ali na base de dados e que
estão interrelacionados e uma coleção de programas para acesso a esse banco de dados percebe que nessa ilustração dá bem para perceber a ideia do sgbd funcionando de fato como um intermediário que faz a intermediação entre as aplicações e a base de dados no meio do caminho entre as aplicações e a base de dados é que nós temos o sgbd o sistema gerenciador de banco de dados pois bem pessoal outra coisa importante quando a gente fala do sgbd são alguns termos que aparecem nas provas de concurso Como por exemplo o termo visão visão é um conceito
que nós usamos nos sgbds e é o conceito que permite que os diferentes usuários compartilhem dados e recursos de processamento que são as views como a gente chama né então tem vários conceitos aplicados outra coisa interessante que vale aí para o nosso entendimento é alguma subdivisão que existem porque basicamente pessoal quando a gente fala de sgbds existem aqueles sistemas gerenciadores de bancos de dados sgbds relacionais e os sgbds que a gente chama de no SQL que são os não relacionais então vamos começar explicando aqui e dentro do conceito de sgbd uma variação que a gente
chama de sgbdr que é o sistema gerenciador de banco de dados relacional esse rzinho que aparece ali no fim significa relacional porque existem também os sistemas gerenciadores de bancos de dados não relacionais que são os nosql mas por enquanto se até a isso sgbd entre alguns tipos tem o sgbdr que é o sistema gerenciador de bancos de dados relacional e o que que é um banco de dados relacional é uma maneira muito intuitiva e direta de representar dados em tabelas nos bancos de dados relacionais cada linha na tabela é considerada um determinado registro dessa tabela
as colunas da tabela contém os chamados atributos dos dados e cada registro geralmente tem um valor para cada atributo então a base de entendimento para os bancos de dados relacionais é justamente a ideia de manutenção de dados através de tabelas relacionadas entre si por isso banco de dados relacional da qual as tabelas se relacionam entre si com suas linhas seus registros e também suas colunas como a gente vai ver aqui no desenho bem fácil de compreender essa ideia então olha comigo aqui eu tenho a ideia de uma tabela de um banco de dados relacional no
caso aqui a tabela clientes essa tabela é formada por diversos Campos que nós também podemos chamar de atributos ou colunas e aí nós temos também nessa tabela as linhas que são consideradas os registros ou tuplas dessas tabelas e é nesses registros que nós vamos acoplar Então os diversos dados Então o que vocês visualizam agora aí na tela é o exemplo de uma tabela nesse caso chamada tabela clientes de um banco de dados relacional que tem esse nome justamente porque permite a criação de várias tabelas com os seus Campos com seus registros com seus dados e
essas tabelas se relacionam entre si essa é a base do entendimento do porquê banco de dados relacional agora importante também saber pessoal que nos bancos de dados relacionais existe uma linguagem de consulta que é muito utilizada a chamada linguagem SQL O que que significa SQL traduzindo para o português significa linguagem de consulta estruturada e é um conjunto de comandos de manipulação de bancos de dados através da linguagem SQL nós podemos criar incluir excluir modificar pesquisar diversas informações naquelas tabelas que existem em um banco de dados relacional então quando a gente fala de bancos de dados
relacionais está intimamente ligada a esses bancos de dados a chamada linguagem SQL que como eu disse permite criar incluir excluir modificar pesquisar consultar dentro dessas tabelas dos bancos de dados relacionais Não esquece mais aí da ideia do SQL agora Quero mostrar uma outra coisa para vocês além de ter pessoal o sgbdr que é o sistema gerenciador de bancos de dados relacionais existem também os chamados sgbd no SQL o sgbd no SQL é um sistema gerenciador de bancos de dados no SQL e esse termo no SQL ele representa a ideia de de um movimento que propõe
novas estruturas de bancos de dados não relacionais então quando a gente estuda os chamados sgbds nós temos os sgbds RS que são os bancos de dados sistemas gerenciadores de bancos de dados relacionais e nós temos os sgbd no SQL que é justamente para bancos de dados não relacionais então são sistemas gerenciadores de bancos de dados para bancos de dados no SQL não relacionais a outra coisa importante também de falar aqui para vocês é que existem Claro vários exemplos de sistemas gerenciadores de bancos de dados relacionais como o caso do Microsoft SQL server o MySQL o
pós G SQL o Oracle Database o Fire Bird o Microsoft access que pertence ao pacote Office da Microsoft o libreoffice base que pertence ao pacote libreoffice e o debase é um outro exemplo bem interessante muito antigo de sgbdr sistema gerenciador de bancos de dados relacionais percebe que nesse caso aqui pessoal fiz uma listinha de alguns desses sgbdr mas existem também exemplos bem típicos e famosos de sgbd no SQL como o caso do Mongo DB do Reds do Cassandra do Nil 4j do amazon Dynamo DB do apach hbase Esses são alguns exemplos de sistemas gerenciadores de
bancos de dados no SQL Então essa tabelinha É bem interessante porque a gente separa os diferentes sistemas gerenciadores de bancos de dados em relacionais e em no SQL como eu demonstrei agora certo eu vou evu indo um pouquinho mais pessoal na classificação dos modelos de no SQL de bancos de dados no SQL nós temos aí algumas classificações interessantes pessoal e atualmente Nós usamos essa classificação para determinar que existem quatro modelos principais de bancos de dados no osql aqueles que são orientados à chave e valor aqueles que são orientados a documentos aqueles que são orientados a
colunas e aqueles que são orientados a gráfic então vamos fazer o seguinte aqui vamos pegar e vamos ver a partir de agora alguns exemplos de bancos de dados no SQL orientados a documentos orientados a chave valor orientado a colunas e orientado a grafos em relação aos orientados a chave valor os principais exemplos são o Dynamo DB o Reds o rak o menc o berkley DB e o level DB Esses são orientados à chave valor já nos bancos de dados no Kell orientados a documentos a o principal mais proeminente é o mongo DB mas ali eu
coloquei outros como o c base e o c DB o Mark Logic E também o Raven DB são alguns orientados a documentos existem também os bancos de dados no eskell orientado a colunas um dos exemplos mais prominentes é o Cassandra e o próprio hbase botei ali também o hiper table como um exemplo e em relação aos orientado a grafos nós temos aí Alguns que são bem famosos também como Allegro graf o Arango DB o infogrid faça um destaque especial pelo Neil 4j hoje muito utilizado o foc DB e o hypergraph DB são alguns exemplos de
no SQL orientados A grafos então com isso vocês percebem que existem de fato diversos tipos de bancos de dados no SQL que são separados aí entre quatro modelos como eu acabei de dizer né repetindo ali aqueles orientados a documentos a valor a documentos a colunas e também a grafos perfeito pessoal em relação agora aos bancos de dados relacionais falei um pouquinho ali de bancos de dados no esql agora voltando e pensando nos bancos de dados relacionais né existem nos bancos de dados relacionais uma preocupação em relação às propriedades básicas da transação que nós chamamos de
acid essa sigla acid representa as quatro propriedades básicas da transação que são muito respeit adas num banco de dados relacional certo que é a atomicidade a consistência O isolamento e a durabilidade vamos falar de cada uma dessas propriedades básicas da transação começando com atomicidade que indica que a transação que foi feita aí nesse banco de dados Ela deve ter todas as suas operações executadas em caso de sucesso agora apresentando falhas nenhum resultado das operações deve refletir sobre o banco de dados Essa é a ideia da atomicidade Então se tudo deu certo se teve sucesso Beleza
então todas as operações são executadas em caso de sucesso em relação à aquela transação agora apresentou alguma falha então nenhum resultado das operações deve refletir sobre o banco de dados significa atomicidade característica típica de bancos de dados relacionais certo outra característica é outra propriedade básica da transação dos bancos de dados relacionais é a consistência que é justamente respeitar as regras de integridade dos dados é a manutenção da integridade desses dados a execução de uma transação leva o banco de dados de um estado consistente íntegro para outro estado consistente para manter a sua integridade a outra
propriedade básica é o isolamento isso É bem interessante é justamente evitar que transações paralelas interfiram uma nas outras evitar que uma as transações são feitas muitas vezes de forma paralela O isolamento evita que essas transações que estão sendo executadas de forma paralela fiquem interferindo uma nas outras e a outra e última propriedade assd aí da dos bancos de dados relacionais como propriedade das transações é a durabilidade que a persistência dos efeitos de uma transação do banco de dados em caso de sucesso mesmo com quedas de energia erros ou travamento quer dizer se teve sucesso Tem
que haver persistência dos efeitos da transação mes mesmo que ocorra algum tipo de queda de energia algum tipo de erro algum tipo de travamento isso é a durabilidade Então essas são as quatro propriedades acid que são propriedades básicas das transações em bancos de dados relacionais já quando a gente fala dos bancos de dados no SQL que é Outra Face dessa história aí é interessante a gente estudar o chamado teorema cap O Teorema Cap ele é interessante porque ele é um aspecto referente aos bancos de dados no usq e ele foi proposto lá no ano 2000
pelo pesqu pelo pesquisador Eric brewer e o brewer quando fez o teorema Cap ele disse o seguinte que consiste em um conjunto deixa eu deixar inteirinho aqui para vocês consiste em um conjunto de requisitos para sistemas distribuídos tipicamente no SQL como caso de consistência disponibilidade e tolerância é cap porque o c ali vem de consistência o A de disponibilidade o a é relacionado à disponibilidade porque tem a ver com a viability que é a disponibilidade em inglês e a tolerância à partição é partition tolerance é o p formando aí o teorema Cap e nesse teorema
cap é interessante porque o breer diz aqui que basicamente os diversos sistemas gerenciadores de bancos de dados Eles não conseguem nunca eh os três pontos do teorema Cap ao mesmo tempo Eles não conseguem manter boa disponibilidade consistência e Toler partição ao mesmo tempo eles só conseguem manter dua dois desses elementos por exemplo aqui ó pegando um sistema gerenciador de bancos de dados relacional e o new 4j que é um sistema no SQL certo no caso aqui percebe que só tem o ca que é justamente a consistência e a a disponibilidade mas em detrimento em função
de ter mais disponibilidade mais consistência ele acaba deixando de lado a tolerância e a partição então é é dois atributos não consegue montar os três ao mesmo tempo no teorema capo por exemplo o mongo DB o Big table hbas e o Reds e o Men Cash são sistemas gerenciadores de bancos de dados também eles mantém aqui CP que é a consistência a tolerância e a partição mas deixam de lado um pouco a disponibilidade já o c DB o Dynamo DB o Simple DB e o Cassandra tem ap quer dizer eles têm boa disponibilidade boa tolerância
a partição mas deixam a desejar na consistência então é interessante a gente pensar nisso porque a consistência por exemplo o que que éa consistência no teorema Cap ela refere-se ao aspecto que todos os nós todos os pontos de conexão do sistema devem conter os mesmos dados garantindo que os diferentes usuários terão a mesma visão do estado dos dados ou seja é preciso garantir que todos os servidores de um cluster Isto é de um agrupamento terão cópias consistentes dos dados e a consistência aqui descrita não tem o mesmo significado que aquela consistência no acid que a
gente viu anteriormente né em que a consistência se refere ao fato que as operações que violam alguma regra de banco de dados não serão aceitas aqui é diferente a história da consistência no teorema Cap temos também a disponibilidade que é para o requisito de disponibilidade o sistema deverá sempre responder a uma requisição mesmo que não esteja consistente e temos também a tolerância à partição como sendo o p ali do teorema Cap que é justamente ti que o sistema Continuará em operação mesmo que algum servidor do cluster quer dizer do agrupamento venha a falhar Essa é
a ideia do teorema Cap e outra coisa interessante é que ainda segundo brewer é Teoricamente impossível obter um sistema que atenda os três requisitos do teorema Cap segundo o teorema Cap se você precisar garantir consistência e disponibilidade para uma determinada aplicação Você precisará abrir mão da tolerância à partição pois ele não oferece garantias em relação a alta consistência dos dados se precisar justamente manter a aplicação Sempre disponível então o teorema Cap ele embora seja formado aí por três letrinhas o seu AP tem que sempre lembrar a historinha possível só a dois quando se cria um
sistema gerenciador de bancos de dados ele vai atender melhor dois requisitos do teorema Cap e um vai ser deixado de lado porque os três ao mesmo tempo não é possível como ensina aí o criador do teorema Cap que é justamente o breer perfeito pessoal feito essas análises agora vamos Responder questões de provas de concurso sobre o assunto sgbd sobre os sistemas gerenciadores de bancos de dados vem aqui e Acompanha comigo a primeira questão diz assim o conjunto de programas responsável pelo gerenciamento de uma base de dados e que entre outras funções suporta uma linguagem de
consulta gera relatórios e disponibiliza uma Interface para que o os seus clientes possam incluir alterar ou consultar dados é chamado d e ali vem várias alternativas bem pessoal esse conjunto de programas responsáveis por gerenciamento de uma base de dados é o que estamos estudando agora né é o sistema gerenciador de bancos de dados conhecido como sgbd da sigla como está ali na letra e de Equador que então é o gabarito e a resposta desta questão vamos lá paraa nossa questão número dois sobre esse assunto Acompanha comigo agora a leitura a assal alternativa que não corresponde
a um sistema gerenciador de bancos de dados percebe que a questão que é que não corresponde a sistema gerenciador de bancos de dados vem ali a letra A MySQL a letra B Oracle a letra C Microsoft SQL server letra d f Bird e a letra e Firefox pessoal qual desses não é um sistema gerenciador de banco de dados o MySQL é o Oracle também é o Microsoft SQL server é e o Firebird também é então dentre esses apresentados aí pessoal o único que não é um sistema gerenciador de bancos de dados é o Mozilla Firefox
é o Firefox que é um navegador Firefox é um programa para acessar as páginas da web é um browser é um navegador nada tem a ver com sistemas gerenciadores de bancos de dados e por isso a resposta é a letra e de Equador Porque ele queria o que não é um sgbd vamos lá paraa nossa questão três desse assunto Acompanha comigo a leitura quais dos sistemas gerenci de bancos de dados sgbd abaixo constituem sgbds no SQL Oracle Database mongo DB New 4j my SQL ainá alternativa que indica todas as afirmativas corretas percebe que a questão
que é sistemas gerenciadores de bancos de dados constituem sistemas sgbds no SQL que são aqueles não relacionais se eu pegar aqui pessoal o Oracle Database é relacional é relacion não posso responder ele que é no SQL e nosql é não relacional o mongo DB sim é não relacional é no SQL o new 4j também não relacional também é no SQL então o 2 e o 3 São sgbds no SQL o Oracle Database é sgbdr sistema gerenciador de bancos de dados relacional e o MySQL aqui também é sgbdr é sistema gerenciador de bancos de dados relacional
então o Oracle Database e o maest são relacionais e o mongo DB e o new 4j são não SQL no SQL por isso resposta aqui são corretas apenas afirmativas dois e trê porque ele queria sgbds no SQL quer dizer aqueles não relacionais ficamos com a de América gabarito e a resposta da questão vamos lá agora pessoal ver uma novidade interessante nessa nossa série de aulas nessa série desse ano eu estou colocando nas minhas aulas o que As bancas respond como certo sobre o assunto que nós estamos discutindo nessa aula que nesse caso sgbd então começa
a partir de agora o nosso quadro aqui na nossa aula que é respostas em algumas bancas sobre sgbds sobre sistemas gerenciadores de bancos de dados vamos lá então o que o Cesp cebrasp disse em uma de suas questões sobre esse assunto Acompanha comigo o o Cesp disz o seguinte assunções de um sistema de gerenciamento de bancos de dados sgbds incluem E aí deu como certo nessa questão então a letra B que dizia transformar e apresentar dados controlar o acesso de multiusuário prover interfaces de comunicação do banco de dados é isso se ele é um sistema
gerenciador de bancos de dados ele precisa transformar os dados ele precisa apresentar os dados através de relatórios e consultas precisa controlar o acesso de vários usuários quer dizer de multiusuário e também tem que PR interfaces quer dizer uma interface que permite que o usuário possa se comunicar com o banco banco de dados por isso resposta aí bem interessante e como correta aí do Cesp nessa letra b o Cesp cebras fez mais uma questão interessante dando conceito vem comigo olha essa aqui o CF cebrasp disse como certo numa questão o seguinte conforme o princípio da atomicidade
que é um uma das propriedades assd lá dos sistemas gerenciadores de bancos de dados relacionais né então conforme o princípio da atomicidade caso ocorra erro em uma determinada transação todo o conjunto A ela relacionado será desfeito até o retorno ao estado Inicial como se a transação Nunca tivesse sido executada bem interessante é isso mesmo a atomicidade que é uma propriedade acid dos bancos tradicionalmente dos bancos de dados relacionais tem essa característica se uma transação não teve sucesso nenhuma operação deve refletir sobre o banco de dados quer dizer ele tem que voltar ao o seu estado
Inicial como se aquela transação Nunca tivesse sido executada também interessante aí Eh sobre atomicidade no Cesp vamos lá agora uma um assunto ainda nesse mesmo assunto a NC UFPR falou também sobre sgbds Acompanha comigo em relação às propriedades acid do modelo transacional utilizado no sistemas gerenciamento de bancos de dados é correto afirmar e ela deu como certo a letra D que dizia o isol ento resolve os efeitos decorrentes da execução de transações concorrentes quer dizer simultâneas né em que cada transação executada de forma que as operações parciais das demais transações não afetem as transações atuais
E é verdade o isolamento é isolar as transações quando são executadas em paralelo que são as transações concorrentes elas devem ter um isolamento O que é feito numa transação não pode afetar a outra transação perfeito aí o isolamento também propriedade Sid vamos lá ainda na NC UFPR mais uma questão sobre esse assunto que ela deu como certo o seguinte o principal objetivo de um sistema gerenciador de bancos de dados de um sgbd é E aí Botou como certo a letra B que dizia armazenar e recuperar os dados de forma conveniente e eficiente quer dizer na
base um sistema gerenciador de bancos de dados precisa armazenar e recuperar os dados por isso é um sistema gerenciador de bancos de dados vai gerenciar o armazenamento desses dados na base de dados e depois a recuperação desses dados advindos dessa base de dados e que isso seja feito de forma conveniente e eficiente vamos agora sobre a banca kiac que falou também sobre sgbds Acompanha comigo no sistemas gerenciadores de bancos de dados sgbds o conceito que permite que os diferentes usuários compartilhem dados e recursos de processamento é conhecido como visão está perfeito isso a ideia da
visão é a criação das views para permitir que diferentes usuários possam compartilhar dados e recursos de processamento a gente viu isso em aula também agora vamos para Iná do Pará outra banca falando sobre esse assunto disse assim sobre um sgbd é correto afirmar E aí deu como resposta a letra D como certa que dizia trata--se de um sistema de software de uso geral que facilita o processo de definição construção manipulação e compartilhamento de banco de dados na verdade é de banco de dados ali ficou bando de dados mas o certo é banco de dados vamos
agora para o Instituto AOCP que falou sobre esse assunto também ó com base nos temas de bancos de dados no usq assinale alternativa que correlaciona corretamente os sgbds no SQL e seus modelos estruturais a gente estudou aqui que quando a gente fala sobre bancos de dados no esql nós temos os modelos de documento modelo baseado em colunas modelos baseados em chave valor e também modelos baseados em grafos e aqui ela deu como certo a letra e que correlaciona corretamente alguns exemplos de sgbds com os seus respectivos modelos estruturais Então ela botou ali que o Cassandra
é um modelo orientado a colunas então Cassandra é um sgbd no esql orientado a colunas que o Neil 4j é um modelo eh bas bado em grafos quer dizer é um sgbd no SQL baseado em grafos que o mongo Deb um dos mais famosos de fato é um é um sgbd no SQL baseado no modelo orientado a documentos aliás mongo DB é um dos mais famosos e que o Reds também aí é um grande exemplo de banco de dados não relacional no SQL que é baseado no modelo chave valor então a resposta aqui Sem dúvida
nenhuma correta era a letra e de Equador para essa questão