Φροντιστήριο Project

ΗΥ360
Αρχεία και Βάσεις ∆ εδοµένων
∆ ιδάσκων: ∆. Πλεξουσάκης
Project 2014
OnlyBooks
1
Διαδικαστικά
Δήλωση ομάδων : 16/12/2014 με email στο hy360@csd.uoc.gr
Ομάδες : 3 ατόμων!
Παράδοση: 19/1/2014 - 12:00 το μεσημέρι
Εξέταση: 26/1 – 29/1/2014
Όλα τα μέλη της κάθε ομάδας θα πρέπει να είναι παρόντα.
Υλοποίηση: Σε δικά σας μηχανήματα ή σε μηχανήματα της σχολής
2
Παραδοτέα
- ένα πλήρες διάγραμμα οντοτήτων-σχέσεων για την εταιρία
- τα γνωρίσματα (όνομα, τύπος) όλων των οντοτήτων και σχέσεων
- τα πρωτεύοντα κλειδιά
- επεξηγήσεις για τα μη-προφανή γνωρίσματα και τις μη-προφανείς σχέσεις
- περιορισμούς πληθικότητας
- τη μετάφραση του μοντέλου σας στο σχεσιακό μοντέλο
- τις εντολές της γλώσσας ορισμού δεδομένων για τις σχέσεις που προκύπτουν
- περιορισμούς ακεραιότητας και συναρτησιακές εξαρτήσεις
- καθορισμό κλειδιών των σχέσεων βάσει των συναρτησιακών εξαρτήσεων
- μετατροπή του μοντέλου σε τρίτη κανονική μορφή με διατήρηση των συναρτησιακών
εξαρτήσεων και χωρίς απώλεια πληροφορίας
- περιγραφή των ερωτήσεων προς τη βάση δεδομένων με SQL
- τον κώδικα των προγραμμάτων τα οποία υλοποιούν τις διαδικασίες που καθορίστηκαν
παραπάνω
- ένα σύντομο εγχειρίδιο χρήσης του συστήματος
- ενδεικτικά αποτελέσματα από την εκτέλεση των διαδικασιών
- περιγραφή των περιορισμών της υλοποίησής σας και των δυνατοτήτων βελτίωσής του
3
Υλοποίηση
1. Σε μηχανήματα της σχολής
2. Σε δικά σας μηχανήματα
1. Windows
2. Linux
Βάση : MySQL server
Διεπαφή : PHP, JAVA κλπ
4
Υλοποίηση Linux - Προαπαιτούμενα
MySQL server για την υλοποίηση της βάσης
- Apache , PHP
- JAVA
- PHPMYADMIN (Εργαλείο διαχείρησης βάσεων MySQL)
APACHE - PHP
Ubuntu : https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu
Fedora / Centos : https://www.digitalocean.com/community/tutorials/how-to-install-lamp-linux-apache-mysql-php-on-fedora
JAVA
Ubuntu: http://www.krizna.com/ubuntu/install-eclipse-in-ubuntu-12-04/
Fedora/ Centos : http://www.itzgeek.com/how-tos/linux/centos-how-tos/install-eclipse-4-4-luna-ide-on-centos-7-rhel7.html#axzz3LUrO4Uqd
PHPMYADMIN
Ubuntu : https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-on-ubuntu-12-04
Fedora / Centos : https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-with-nginx-on-acentos-7-server
5
Υλοποίηση Linux - Προαπαιτούμενα
6
Υλοποίηση Windows- Προαπαιτούμενα
XAMPP :
http://downloads.sourceforge.net/project/xampp/XAMPP%20Windows/5.6.3/xampp-win325.6.3-0-VC11-installer.exe
Εγκατάσταση : http://www.wikihow.com/Install-XAMPP-for-Windows
Πριν εγκαταστήσετε το XAMPP, και αν έχετε εγκατεστημένο το Skype, θα
πρέπει να αλλάξετε κάποιες προεπιλεγμένες ρυθμίσεις που επηρεάζουν
την εγκατάσταση του XAMPP, χωρίς φυσικά να επηρεάζεται η λειτουργία
του Skype:
Στο Skype, από το μενού Εργαλεία / Επιλογές αποεπιλέξτε την επιλογή
«Χρήση των θυρών 80 και 443»
7
Υλοποίηση Windows- Προαπαιτούμενα
JAVA:
Eclipse :
https://elearn.uoc.gr/pluginfile.php/19047/mod_resource/content/0/F10_ECLIPSE_2014_201
5.pdf
NetBeans :
https://elearn.uoc.gr/pluginfile.php/19046/mod_resource/content/0/F10_NETBEANS_2014_
2015.pdf
8
Παραδείγματα PHP
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
9
Παραδείγματα JAVA
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/EMP";
// Database credentials
static final String USER = "username";
static final String PASS = "password";
//STEP 2: Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//STEP 5: Extract data from result set
while(rs.next()){
//Retrieve by column name
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
}
//Display values System.out.print("ID: " + id);
System.out.print(", Age: " + age);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
//STEP 6: Clean-up environment
rs.close(); stmt.close(); conn.close();
//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql; sql = "SELECT id, first, last, age FROM Employees";
ResultSet rs = stmt.executeQuery(sql);
10