|
| 1 | + |
| 2 | +# Base de dados |
| 3 | + |
| 4 | +O objectivo deste arquivo é explicar as principais relações da base de dados; a base de dados principal, as suas tabelas, a forma como os dados são armazenados e dar uma imagem global da nossa base de dados. |
| 5 | + |
| 6 | +A aplicação do website da Hollow contém diferentes modelos, que são implementadas em arquivos do tipo `models.py`. |
| 7 | + |
| 8 | +Se quiser criar um novo modelo, terá de o fazer neste arquivo. |
| 9 | + |
| 10 | +Para mais informações sobre bases de dados Django, consulte por favor a [`documentação`](https://docs.djangoproject.com/en/3.0/topics/db/models/) |
| 11 | + |
| 12 | +## Especificações |
| 13 | + |
| 14 | +Serviço: heroku-postgresql |
| 15 | + |
| 16 | +- PLANO : [standard-0](https://devcenter.heroku.com/articles/heroku-postgres-plans) |
| 17 | +- Aplicação de facturação: |
| 18 | + |
| 19 | +- Região: |
| 20 | +- Primário: |
| 21 | +- Versão : |
| 22 | +- Criação : |
| 23 | +- Cópias de segurança: |
| 24 | +- Tabelas: |
| 25 | +- Usando : |
| 26 | + |
| 27 | +## Comandos com Heroku ## |
| 28 | + |
| 29 | +Utilize o [Heroku CLI](https://devcenter.heroku.com/articles/heroku-command-line) para aceder aos registos a partir da linha de comando. |
| 30 | +```bash |
| 31 | +heroku logs --tail --ps postgres --app {app_name} |
| 32 | +``` |
| 33 | + |
| 34 | +Para se ligar à base de dados (OBS: É melhor utilizar o DataGrip) |
| 35 | +```bash |
| 36 | +heroku psql --app {app_name} |
| 37 | +``` |
| 38 | + |
| 39 | +Para recuperar as referências do banco |
| 40 | +```bash |
| 41 | +heroku pg:credentials:url --app {app_name} |
| 42 | +``` |
| 43 | + |
| 44 | +Ajuda para exibir informação de base de dados |
| 45 | +```bash |
| 46 | +heroku pg --app {app_name} --help |
| 47 | +``` |
| 48 | + |
| 49 | +Para mais informações |
| 50 | +```bash |
| 51 | +heroku help |
| 52 | +``` |
| 53 | + |
| 54 | +## Ficha técnica |
| 55 | + |
| 56 | +Os `dataclips` são essencialmente consultas SQL que podem ser partilhadas com os colegas através de Heroku. |
| 57 | +Se tiver uma query em SQL que gostaria de partilhar com a equipa, sinta-se à vontade para a acrescentar [aqui](https://data.heroku.com/dataclips). |
| 58 | + |
| 59 | + |
| 60 | +- Para mais informações, por favor visite [documentação](https://devcenter.heroku.com/articles/dataclips) |
| 61 | + |
| 62 | +## Tabelas |
| 63 | +Para visualizar as tabelas e as suas relações, podemos utilizar o DataGrip e exportá-las em formato pdf. |
| 64 | + |
| 65 | +Para encontrar o diagrama de relações, basta ir à pasta "tabelas", clicar com o botão direito do mouse e seleccionar "Diagramas" e "Ver Vista", ou usar o atalho "Ctrl+Alt+Shift+U". |
| 66 | + |
| 67 | + |
| 68 | +## Relacionamentos |
| 69 | +Na teoria das bases de dados relacionais, existem 3 tipos principais de relações: |
| 70 | + |
| 71 | +1. Um-para-um (um-para-um): |
| 72 | +Uma linha num campo da tabela está relacionada apenas com um outro elemento da tabela. |
| 73 | +Por exemplo, temos as relações "membro" e "utilizador". O membro e o utilizador devem ser a mesma pessoa. Representam então um único elemento. |
| 74 | + |
| 75 | +2. "Um a muitos (1 - n)": um elemento de um campo numa tabela pode ser ligado a vários outros elementos de outra tabela. |
| 76 | +Por exemplo, temos relações de "cidade" e "país". Uma cidade pode ter apenas um país, mas um país pode ter várias cidades. |
| 77 | + |
| 78 | +3. "Muitos para muitos (n - n)": a relação de pluralidade é para trás e para a frente. Por exemplo, "utilizador" e "evento". |
| 79 | +Um utilizador pode ter vários eventos e um evento pode ter vários utilizadores. |
| 80 | + |
| 81 | +## Como armazenar dados |
| 82 | + |
| 83 | +O armazenamento de dados é muito importante. Temos de considerar os seguintes aspectos |
| 84 | +acrescentando dados à base de dados BRASA: |
| 85 | + |
| 86 | +1) ``Dados actuais``: processar sempre dados actuais. |
| 87 | +2) `Integridade dos dados`: os dados devem ser completos, não corrompidos ou incompletos. |
| 88 | +3) `Limpeza de dados`: os dados devem estar limpos, nenhuma informação deve ser acrescentada a nada. |
| 89 | +4) ``Padronização dos dados``: Os dados devem ser padronizados. A mesma coluna da base de dados não deve ser utilizada. |
| 90 | +para dados que pertencem a dois tipos diferentes de formatação. |
| 91 | +5) `Consistência dos dados`: os dados devem ser coerentes. Do ponto de vista da homogeneidade, consistência e firmeza. |
| 92 | +Não se deve trabalhar com dados que estejam ou venham a estar quebrados no futuro. |
| 93 | + |
| 94 | +Use o comando : |
| 95 | +``` |
| 96 | +Command: INSERT |
| 97 | +Description: create new rows in a table |
| 98 | +Syntax: |
| 99 | +[ WITH [ RECURSIVE ] with_query [, ...] ] |
| 100 | +INSERT INTO table_name [ AS alias ] [ ( column_name [, ...] ) ] |
| 101 | +``` |
| 102 | + |
| 103 | +Para mais informações : |
| 104 | + |
| 105 | +- Vídeo SQL : [CS50 SQL](https://www.youtube.com/watch?v=u5pDdEKnbKA) |
| 106 | + |
| 107 | +- Folha de dados SQL e outras informações : [w3schools SQL](https://www.w3schools.com/sql/sql_ref_keywords.asp) |
| 108 | + |
| 109 | + |
0 commit comments