Escriu per cercar…

Query - Airline Fligts

Introducció

El camp temàtic d’aquesta base de dades són els vols de companyies aèries a Rússia.

En desenvolupar aquesta base de dades de demostració, vam perseguir diversos objectius:

  • L’esquema de la base de dades ha de ser prou senzill com per ser entès sense explicacions addicionals.

  • Al mateix temps, l’esquema de la base de dades ha de ser prou complex per permetre escriure consultes significatives.

  • La base de dades ha de contenir dades reals amb les quals sigui interessant treballar.

Instal.lació

Entra dins el contenidor postgres_db_1 i descarrega la base de dades Airline Flights:

shell
$ docker exec -it postgres_db_1 sh
... $ curl https://gitlab.com/xtec/postgres-data/-/raw/main/airline_flights.dump | su postgres -c " pg_restore -C -d postgres"

Conecta’t a la base de dades:

shell
... $ psql -U postgres airline_flights
    ... $ \d
                           List of relations
          Schema  |         Name          |   Type   |  Owner   
        ----------+-----------------------+----------+----------
         bookings | aircrafts             | view     | postgres
         bookings | aircrafts_data        | table    | postgres
        ...

Esquema

classDiagram
direction LR

class Bookings { 
  # book_ref
  book_date
  total_amount
}
class Tickets { 
  # ticket_no
  passenger_id
  passenger_name
  contact_data
}
Tickets ..> Bookings : book_ref

class Airports {
  # airport_code
  airport_name
  ...
}

class Flights {
  # flight_id
  flight_no
  schedule_departure
  ...
}

Flights ..> Airports: departure_airport
Flights ..> Airports: arrival_airport
Flights ..> Aircrafts: aircraft_code

class Tickets_flights {
  fare_conditions
  amount
}

Tickets_flights --> Tickets : # ticket_no
Tickets_flights --> Flights : # flight_id

class Aircrafts {
  # aircraft_code
  model
  range
}

class Seats {
  # seat_no
  fare_condtions
}

Seats --> Aircrafts:  #aircraft_code

Schema bookings

L’esquema bookings conté tots els objectes de la base de dades de demostració. Quan us connecteu a la base de dades, el paràmetre de configuració search_path s’estableix automàticament en bookings, public, de manera que no cal que especifiqueu explícitament el nom de l’esquema.

Tanmateix, per a la funció bookings.now, sempre heu d’especificar l’esquema per distingir aquesta funció de la funció estàndard now.

Translations

Per defecte, els valors de diversos camps traduïbles es mostren en rus. Aquests són airport_name i city de la vista de airports, així com el model de la vista de aircrafts.

Podeu optar per mostrar aquests camps en un altre idioma (tot i que a la base de dades de demostració només es proporciona la traducció a l’anglès).

Per canviar a l’anglès, configureu el paràmetre bookings.lang a en. Pot ser convenient triar l’idioma a nivell de base de dades:

sql
ALTER DATABASE demo SET bookings.lang = en;

Heu de tornar a connectar-vos a la base de dades perquè aquesta ordre tingui efecte.

Consultes

1.- Tots els vols operats pels diferentes tipus d’avions:

{% sol %}

sql
SELECT * FROM aircrafts;

Estàs llegint una vista prèvia.

Inicia sessió amb Google per llegir la pàgina completa. Segueix l'itinerari d'aprenentatge — cada pàgina es desbloqueja quan has llegit les que la precedeixen. L'alumnat i el professorat llegeixen les pàgines del seu curs sense límit.

Inicia sessió