This course provides the student with the required knowledge for the design and implementation of databases and related applications.
In particular, attention will be paid on methodologies for conceptual and logical database design, on the implementation of databases through widely known (relational) database management systems. Both theoretical and "practical" query languages will be introduced, as relational algebra and SQL.
After an introduction of the basic concepts of computer networks, the course will deal with methodologies and technologies for the design and implementation of data-centric web sites, with an emphasis on the storage and query of bioinformatics data.
* Introduction of data base management systems. Architecture and functionalities of a database system.
* Data models for database systems. The relational data model.
* Interacting with a database: languages for the definition, manipulation, and query of a database. Relational algebra. The SQL language.
* Database design. The methodology. The Entity-Relationship (ER) data model. Logical database design: the logical schema of a database. Translating conceptual schemata in relational schemata.
* The internal architecture of a database management system: the relevance of transactional systems. The ACID transaction properties. Physical data organisation: sequential data structures and indexes (B-trees and hashing).
* Data centric web applications and bioinformatics. Basic concepts of computer networks. Semistructured data models; XML for bioinformatics. Interaction of web servers and data base management systems. Design methodologies for data-centric web applications. The MVC model. Design of data-centric web-based bioinformatics applications.