ΠΣΤΥΙΑΚΗ ΕΡΓΑΙΑ Διαδικησακή εθαρμογή διατείριζης δικηγορικού γραθείοσ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΠΣΤΥΙΑΚΗ ΕΡΓΑΙΑ Διαδικησακή εθαρμογή διατείριζης δικηγορικού γραθείοσ"

Transcript

1 ΣΔΥΝΟΛΟΓΙΚΟ ΔΚΑΠΙΓΔΤΣΙΚΟ ΙΓΡΤΜΑ ΑΝΑΣΟΛΙΚΗ ΜΑΚΔΓΟΝΙΑ ΘΡΑΚΗ ΣΜΗΜΑ ΜΗΥΑΝΙΚΧΝ ΠΛΗΡΟΦΟΡΙΚΗ ΣΔ ΠΣΤΥΙΑΚΗ ΕΡΓΑΙΑ Διαδικησακή εθαρμογή διατείριζης δικηγορικού γραθείοσ ΠΑΓΩΝΗ ΚΤΠΑΡΙΙΑ ΑΕΜ.:1739 ΜΟΡΑΛΗ ΜΑΡΑΓΔΑ ΑΕΜ.:1902 ΔΠΙΒΛΔΠΧΝ: Μήηζα Αικαηερίνη ΚΑΒΑΛΑ

2 ΠΔΡΙΛΗΦΗ Ο ζθνπόο ηεο παξνύζαο πηπρηαθήο εξγαζίαο είλαη ε αλάπηπμε κηαο δηαδηθηπαθήο εθαξκνγήο ε νπνία ζα έρεη σο θεληξηθό πεξηερόκελν ηε δηαρείξηζε ησλ δεδνκέλσλ ελόο δηθεγνξηθνύ γξαθείνπ. Ζ ρξεζηκόηεηα κηαο ηέηνηαο εθαξκνγήο έγθεηηαη ζην γεγνλόο όηη ζήκεξα ν ζύγρξνλνο δηθεγνξηθόο θιάδνο είλαη νξγαλσκέλνο θπξίσο ζε γξαθεία πνπ απαζρνινύλ έλα ζύλνιν δηθεγόξσλ θαη θαη' επέθηαζε, εμππεξεηνύλ κηα πιεζώξα πειαηώλ, κε πνιιέο ππνζέζεηο θαη πνιιαπινύο ζπλεξγάηεο γηα θάζε ππόζεζε. Σαπηόρξνλα, ε ύπαξμε δηθεγνξηθνύ πξνζσπηθνύ θαζηζηά ηελ αλάγθε δεκηνπξγίαο κηαο θαηάζηαζεο κηζζνδνζίαο θαη ελόο εκεξνινγίνπ πνπ ζα θαηαγξάθεη όιεο ηηο δηθαζηηθέο ππνρξεώζεηο (εκεξνκελίεο δηθάζηκσλ ησλ αγσγώλ πνπ ζα θαηαζέηνπλ νη δηθεγόξνη) ηνπ γξαθείνπ. Ζ εθαξκνγή ζα δίλεη ηε δπλαηόηεηα ζηνλ ρξήζηε λα ειέγρεη αλά πάζα ζηηγκή πόζνη δηθεγόξνη απαζρνινύληαη ζην γξαθείν, πόζνπο πειάηεο έρεη, πόζεο ππνζέζεηο εμππεξεηνύληαη, πόζνη εμσηεξηθνί ζπλεξγάηεο ζπλδένληαη κε ηελ θάζε ππόζεζε, πόζεο αγσγέο έρνπλ θαηαηεζεί ζπλνιηθά, ηε κηζζνδνζία ησλ δηθεγόξσλ, θαζώο θαη ηηο εκεξνκελίεο πνπ δηθάδνληαη νη αγσγέο. Ο ρξήζηεο ζα κπνξεί επίζεο λα εηζάγεη θαηλνύξγηα δεδνκέλα, λα ηξνπνπνηεί ζηνηρεία θαη λα δηαγξάθεη ππάξρνπζεο εγγξαθέο. Γηα ηηο αλάγθεο ηεο εθαξκνγήο ρξεζηκνπνηήζεθε ην ινγηζκηθό WAMP. Αξρηθά δεκηνπξγήζακε κηα βάζε δεδνκέλσλ MySQL κε θάπνηεο αξρηθέο εγγξαθέο θαη ζηε ζπλέρεηα πινπνηήζακε ηηο ιεηηνπξγίεο ηεο εθαξκνγήο ζε θώδηθα php γηα ηε δηαρείξηζε ηεο βάζεο θαη ζε HTML/CSS/Javascript γηα ηελ εκθάληζε ησλ ηζηνζειίδσλ. Ο ιόγνο πνπ πξνηηκήζεθε απηή ε ηερλνινγία ήηαλ γηα λα ππάξρεη ε δπλαηόηεηα ρξήζεο ηεο εθαξκνγήο κέζσ ελόο απινύ web browser, ρσξίο ηελ αλάγθε γηα πεξαηηέξσ εγθαηάζηαζε ινγηζκηθνύ πςειώλ απαηηήζεσλ ζηνπο ππνινγηζηέο ηνπ δηθεγνξηθνύ γξαθείνπ, παξά κόλν ηελ ύπαξμε ελόο ζθιεξνύ δίζθνπ όπνπ ζα ιεηηνπξγεί σο localhost web server θαη όπνπ ζα είλαη απνζεθεπκέλε ε βάζε δεδνκέλσλ. 2

3 Πίνακαρ Πεπιεσομένων 1 Δηζαγσγή ζηηο δηαδηθηπαθέο εθαξκνγέο Γεληθά Ηζηνξηθή αλαδξνκή Δπαγγεικαηηθή ρξήζε Γνκή Πιαίζηα δηαδηθηπαθώλ εθαξκνγώλ Αξρηηεθηνληθέο πιαηζίσλ Σερληθέο Push-based θαη pull-based πζηήκαηα δηαρείξηζεο πεξηερνκέλνπ (CMS) Πιενλεθηήκαηα Μεηνλεθηήκαηα Σερλνινγία δηαδηθηπαθώλ εθαξκνγώλ Πξνγξάκκαηα πεξηήγεζεο δηαδηθηύνπ (Internet Web Browsers) Σν πξσηόθνιιν HTTP HTML Φύιια ηπι κε Γπλαηόηεηα Δπηθάιπςεο (Cascading Style Sheets) ύληαμε Υξήζε JavaScript jquery Asynchronous JavaScript and XML (AJAX) Σερλνινγίεο από ηελ πιεπξά ηνπ δηαθνκηζηή (server-based) Γηαθνκηζηέο Γηαδηθηύνπ (Web Servers) Server-side scripting ASP (Active Server Pages) PHP SQL Γιώζζα Οξηζκνύ Γεδνκέλσλ (Data Definition Language) Γιώζζα Υεηξηζκνύ Γεδνκέλσλ (Data Manipulation Language)

4 3.4 ύζηεκα Γηαρείξηζεο Βάζεο Γεδνκέλσλ (DBMS) Oracle Microsoft SQL Server MySQL Λνγηζκηθά ζηνίβεο (stacks) ΠΑΡΑΡΣΖΜΑ Α: ΔΓΥΔΗΡΗΓΗΟ ΔΦΑΡΜΟΓΖ ΔΓΚΑΣΑΣΑΖ ΔΝΟ ΛΟΓΗΜΗΚΟΤ ΣΟΗΒΑ AMP ΔΓΚΑΣΑΣΑΖ ΣΖ ΒΑΖ ΓΔΓΟΜΔΝΩΝ ΔΗΑΓΩΓΖ ΣΖΝ ΔΦΑΡΜΟΓΖ Δηζαγσγή Υξήζηε ΠΡΟΒΟΛΔ ΔΓΓΡΑΦΩΝ ΔΗΑΓΩΓΖ ΔΓΓΡΑΦΖ ΔΠΔΞΔΡΓΑΗΑ ΔΓΓΡΑΦΖ ΓΗΑΓΡΑΦΖ ΔΓΓΡΑΦΖ ΠΑΡΑΡΣΖΜΑ Β: ΛΔΞΗΚΟ ΓΔΓΟΜΔΝΩΝ ΠΑΡΑΡΣΖΜΑ Γ: Απαηηήζεηο γηα ηνπο πξνγξακκαηηζηέο ΠΑΡΑΡΣΖΜΑ Γ: Πξνδηαγξαθέο Λνγηζκηθνύ Λεηηνπξγηθέο Πξνδηαγξαθέο Σερληθέο Πξνδηαγξαθέο ΠΑΡΑΡΣΖΜΑ E: Μνληέιν Οληνηήησλ-πζρεηίζεσλ (ER Model) Βηβιηνγξαθηθέο Αλαθνξέο Διζαγυγή ζηιρ διαδικηςακέρ εθαπμογέρ 1.1 Γενικά Ωο δηαδηθηπαθή εθαξκνγή (web application) νξίδεηαη νπνηαδήπνηε εθαξκνγή ινγηζκηθνύ ε νπνία κπνξεί λα εθηειεζηεί ζε έλα πξόγξακκα πεξηήγεζεο δηαδηθηύνπ (web browser) όπσο ν Internet Explorer, ν Mozilla Firefox ή ν Google Chrome ή/θαη δεκηνπξγείηαη από γιώζζα πξνγξακκαηηζκνύ πνπ λα βαζίδεηαη από έλαλ web browser (όπσο είλαη ν ζπλδπαζκόο JavaScript, HTML θαη CSS). Οη δηαδηθηπαθέο εθαξκνγέο έρνπλ αλαδεηρηεί ζε βαζηθό ζηνηρείν ηεο επηζηήκεο ησλ 4

5 ππνινγηζηώλ ηηο ηειεπηαίεο δεθαεηίεο, θπξίσο γηα δπν βαζηθνύο ιόγνπο. Αθελόο, ε ζπλερώο απμαλόκελε ρξήζε ηνπ Γηαδηθηύνπ αιιά θαη ηνπηθώλ δηθηύσλ από εθαηνκκύξηα ρξήζηεο παγθνζκίσο αλέδεημε ηελ αλάγθε όρη κόλν παξνπζίαζεο δεδνκέλσλ κέζσ ηζηνζειίδσλ αιιά θαη δπλαηόηεηαο γηα ηελ επεμεξγαζία ηνπο κέζσ πην νινθιεξσκέλσλ εθαξκνγώλ. Αθεηέξνπ, ε δπλαηόηεηα ελεκέξσζεο θαη εθηέιεζεο εθαξκνγώλ web, ρσξίο ηελ αλάγθε δηαλνκήο θαη εγθαηάζηαζεο ινγηζκηθνύ ζε θάζε έλα ππνινγηζηή, παξά κόλν ελόο web browser, πνπ πιένλ παξέρεηαη καδί κε θάζε ιεηηνπξγηθό ζύζηεκα (o IE γηα Windows θαη ν Mozilla Firefox γηα ηα Linux), είλαη έλαο βαζηθόο ιόγνο γηα ηε δεκνηηθόηεηά ηνπο, όπσο θαη ε cross-platform ζπκβαηόηεηά ηνπο. Γεληθόηεξα, ε επηθνηλσλία δπν απνκαθξπζκέλσλ ππνινγηζηώλ γηα αληαιιαγή δεδνκέλσλ είηε κέζσ δηαδηθηύνπ είηε ζηα πιαίζηα ελόο ηνπηθνύ δηθηύνπ LAN (Local Area Network) πξαγκαηνπνηείηαη ζηα πιαίζην ηεο αξρηηεθηνληθήο server/client (δηαθνκηζηήο/πειάηεο). Παιαηόηεξα, ην ππνινγηζηηθό θνξηίν κηα εθαξκνγήο κνηξαδόηαλ κεηαμύ ηνπ πξνγξακκαηηζηηθνύ θώδηθα ηνπ δηαθνκηζηή θαη ηνπ αληίζηνηρνπ ηνπ πειάηε ζρεδόλ εμίζνπ. Κάζε εθαξκνγή είρε ην δηθό ηεο ηκήκα εγθαηεζηεκέλν ζηνλ Ζ/Τ-πειάηε πνπ ιεηηνπξγνύζε σο δηεπαθή ρξήζηε θαη ε νπνία ρξεηαδόηαλ λα εγθαηαζηαζεί ζε θάζε ππνινγηζηή μερσξηζηά. Ωο εθ ηνύηνπ κηα ελδερόκελε αλαβάζκηζε ζηνλ θώδηθα ηνπ δηαθνκηζηή απαηηνύζε κηα αληίζηνηρε αλαβάζκηζε ηνπ θώδηθα ζε θάζε πειάηε, κε απνηέιεζκα ηελ αύμεζε ηνπ θόζηνπο ππνζηήξημεο θαη ηεο πνιππινθόηεηαο ηεο δηαδηθαζίαο. Δπηπιένλ, ην ηκήκα ηεο εθαξκνγήο ηνπ πειάηε ζπλήζσο εμαξηηόηαλ ππεξβνιηθά από ηελ αξρηηεθηνληθή θαη ην ιεηηνπξγηθό ζύζηεκα ηνπ ππνινγηζηή όπνπ ήηαλ εγθαηεζηεκέλε. Ωο απνηέιεζκα ησλ παξαπάλσ, νη εθαξκνγέο παξνπζίαδαλ κηθξή δπλαηόηεηα κεηαθεξζηκόηεηαο, θαη ζηελ πεξίπησζε πνπ δελ ήηαλ πξνγξάκκαηα κεγάιεο θιίκαθαο (πρ πιεξνθνξηαθά ζπζηήκαηα), ε όπνηα πξνζπάζεηα κεηαθνξάο ηνπο ζε δηαθνξεηηθά πεξηβάιινληα, ζπρλά ήηαλ νηθνλνκηθά αζύκθνξε. ηε ζεκεξηλή εθαξκνγή ηνπ κνληέινπ server/client o ππνινγηζηήο ηνπ ρξήζηε-πειάηε ζπλδέεηαη κε έλαλ θεληξηθό ππνινγηζηή server όπνπ ππάξρνπλ απνζεθεπκέλεο πιεξνθνξίεο θαη βάζεηο δεδνκέλσλ. Γηα λα απνθηήζεη πξόζβαζε ζε θάπνηα πιεξνθνξία ν client θάλεη κηα αίηεζε (request) ζηνλ server θαη ηελ αλαθηά κε ηε κνξθή ηζηνζειίδαο. ε πνιιέο πεξηπηώζεηο πξηλ ηελ απνζηνιή ηεο ηζηνζειίδαο ζηνλ client, πξνεγείηαη θάπνηα επεμεξγαζία δεδνκέλσλ κέζσ θάπνηνπ πξνγξάκκαηνο (script) ην νπνίν είλαη επίζεο απνζεθεπκέλν ζηνλ server. Απηή ε αξρηηεθηνληθή επηηξέπεη ζηνλ ρξήζηε λα έρεη πξόζβαζε ζε έλαλ server ν νπνίνο δξα ζαλ απνζεθεπηηθό κέζν (αξρείσλ ή βάζε δεδνκέλσλ) θαη ηαπηόρξνλα λα επεμεξγάδεηαη επεμεξγαζίαο δεδνκέλσλ ρσξίο λα ππάξρεη ηνπηθά ζηνλ ππνινγηζηή ηνπ επηπιένλ ππνινγηζηηθόο θόξηνο. Οη δηαδηθηπαθέο εθαξκνγέο βαζίδνληαη θαηά πνιύ ζηε ρξήζε ζπγθεθξηκέλσλ κνξθώλ 5

6 παξνπζίαζεο δεδνκέλσλ όπσο νη HTML θαη JavaScript, νη νπνίεο ππνζηεξίδνληαη από κηα πνηθηιία ησλ web browsers. Οη web εθαξκνγέο κπνξνύλ λα ζεσξεζνύλ σο κηα ζπγθεθξηκέλε παξαιιαγή ηνπ κνληέινπ client-server, όπνπ ν θώδηθαο πνπ αλαινγεί ζηνλ πειάηε θνξηώλεηαη ή ελεκεξώλεηαη ζηνλ ηνπηθό-ππνινγηζηή ζε θάζε επίζθεςε ηεο ζρεηηθήο ηζηνζειίδαο, ζύκθσλα κε θαζηεξσκέλα πξσηόθνιια όπσο ην HTTP. Οπζηαζηηθά θαηά ηε δηάξθεηα ηεο ζύλδεζεο, ν web browser εξκελεύεη θαη εκθαλίδεη ηηο ζειίδεο ιεηηνπξγώληαο σο θαζνιηθόο πειάηεο γηα νπνηαδήπνηε δηαδηθηπαθή εθαξκνγή. 1.2 Ιζηοπική αναδπομή Σν 1995 ε εηαηξία Netscape εηζήγαγε ηε JavaScript, κηα client-side script γιώζζα πνπ επέηξεπε ζηνπο πξνγξακκαηηζηέο λα πξνζζέηνπλ ή λα επεμεξγάδνληαη ζηνηρεία ζην πεξηβάιινλ εξγαζίαο ηνπ πειάηε-ρξήζηε. Μέζα από ηα ελζσκαησκέλα έηνηκα ζελάξηα θώδηθα (embedded scripts) ηεο Javascript, κπνξνύζαλ λα εθηειεζηνύλ απιέο ιεηηνπξγίεο όπσο επηθύξσζε εηζαγσγήο παξακέηξσλ ή εκθάληζε/απόθξπςε ηκεκάησλ ηεο ηζηνζειίδαο, ρσξίο λα είλαη αλαγθαία πξνγξακκαηηζηηθά ε εκπινθή ηνπ ινγηζκηθνύ ηνπ δηαθνκηζηή θαη ε επαλαθόξηηζε ηεο ζειίδαο. Σαπηόρξνλα εθείλε ηελ πεξίνδν αλαπηύζζεηαη ε πξώηε νινθιεξσκέλε έθδνζε ηεο PHP, ηεο βαζηθήο γιώζζαο πξνγξακκαηηζκνύ πνπ εθηειείηαη από ηελ πιεπξά ηνπ server. Σν 1996, ε Macromedia Flash εηζήγαγε έλα ινγηζκηθό αλαπαξαγσγήο θηλνπκέλσλ ζρεδίσλ (animations) πνπ ζα κπνξνύζε λα πξνζηεζεί ζηα πξνγξάκκαηα πεξηήγεζεο ηζηνζειίδαο σο έλα plug-in πξνθεηκέλνπ λα κπνξνύλ λα εκθαλίδνληαη animations ζηηο ηζηνζειίδεο ρσξίο λα ρξεηάδεηαη επηπιένλ επηθνηλσλία κε ηνλ δηαθνκηζηή. Σν 1999, ε έλλνηα ηεο δηαδηθηπαθήο εθαξκνγήο εηζήρζε ζηε γιώζζα πξνγξακκαηηζκνύ Java (έθδνζε Servlet API Specification 2.2). Σελ ίδηα πεξίνδν, ην αληηθείκελν XMLHttpRequest σο API πνπ ρξεζηκνπνηείηαη από ηνλ script θώδηθα ηεο Javascript κε ζθνπό ηελ επηθνηλσλία θαη κεηαθνξά δεδνκέλσλ κεηαμύ ηνπ ηνπ client θαη ηνπ server θαζηεξώλεηαη σο ActiveX αληηθείκελν ζηνλ Internet Explorer 5. Σν 2005, θαζηεξώλεηαη ε ηερλνινγία αζύγρξνλεο κεηαθνξάο δεδνκέλσλ κεηαμύ client θαη server, AJAX (Asynchronous JavaScript And XML), θαη εθαξκνγέο όπσο ην Gmail απνθηνύλ όιν θαη κεγαιύηεξε δηαδξαζηηθόηεηα από πιεπξάο ρξήζηε θαζώο έλα script πξόγξακκα είλαη πιένλ ζε ζέζε λα επηθνηλσλήζεη κε ην δηαθνκηζηή γηα ηελ απνζήθεπζε/αλάθηεζε δεδνκέλσλ ρσξίο λα είλαη αλαγθαία ε ιήςε νιόθιεξεο ηεο ηζηνζειίδαο. Σν 2011, ε HTML5 έρεη πιένλ νξηζηηθνπνηεζεί, ε νπνία πξνζθέξεη δπλαηόηεηεο ελζσκάησζεο γξαθηθώλ θαη πνιπκέζσλ ρσξίο ηελ αλάγθε γηα εγθαηάζηαζε plug-ins από πιεπξά 6

7 ρξήζηε. Δπίζεο θαζηεξώλνληαη σο βαζηθά ζηνηρεία ηεο HTML APIs όπσο ην WebGL γηα ηελ ελζσκάησζε 3D γξαθηθώλ θαη ην κνληέιν αληηθεηκέλσλ εγγξάθσλ DOM (document object model) πνπ απμάλεη ηηο δπλαηόηεηεο αιιειεπίδξαζεο κεηαμύ αληηθεηκέλσλ HTML,XHTML θαη XML. 1.3 Δπαγγελμαηική σπήζη Μηα θαζηεξσκέλε ζηξαηεγηθή γηα ηηο εηαηξείεο ινγηζκηθνύ ζε ζρέζε κε ηηο δηαδηθηπαθέο εθαξκνγέο είλαη λα παξέρνπλ πξόζβαζε ζην δηαδίθηπν ζε ινγηζκηθό πνπ παιηόηεξα έπξεπε λα δηαλεκεζεί θαη λα εγθαηαζηαζεί ζηνλ ππνινγηζηή θάζε ηνπηθνύ ρξήζηε. Αλάινγα κε ηνλ ηύπν ηεο εθαξκνγήο, κπνξεί λα είλαη απαξαίηεηε είηε ε αλάπηπμε ελόο εληειώο δηαθνξεηηθό interface βαζηζκέλνπ ζηα ραξαθηεξηζηηθά ηνπ πξνγξάκκαηνο πεξηήγεζεο, ή απιώο ε πξνζαξκνγή κηαο ππάξρνπζαο εθαξκνγήο ζε δηαθνξεηηθά ηερλνινγηθά ραξαθηεξηζηηθά. Ζ δηαδηθηπαθή παξνρή ησλ πξνγξακκάησλ απηώλ δίλνπλ ηε δπλαηόηεηα ζην ρξήζηε λα πιεξώλεη κηα κεληαία ή εηήζηα ζπλδξνκή γηα ηε ρξήζε ηεο εθαξκνγήο, ρσξίο λα ρξεηάδεηαη ε εγθαηάζηαζή ηνπ ζηνλ ηνπηθό ζθιεξό δίζθν. Κάζε εηαηξεία ε νπνία αθνινπζεί απηή ηε ζηξαηεγηθή είλαη γλσζηή σο παξνρέαο ππεξεζηώλ εθαξκνγώλ (Application Service Provider ASP). Οη παξαβηάζεηο αζθαιείαο ζε απηά ηα είδε εθαξκνγώλ είλαη έλα ζεκαληηθό δήηεκα, δηόηη κπνξεί λα αθνξνύλ ηόζν πιεξνθνξίεο γηα ηηο επηρεηξήζεηο όζν θαη ηα πξνζσπηθά δεδνκέλα ησλ πειαηώλ. Ζ πξνζηαζία απηώλ ησλ πξνζσπηθώλ ή εηαηξηθώλ δεδνκέλσλ είλαη έλα ζεκαληηθό πεδίν ηεο θάζε δηαδηθηπαθήο εθαξκνγήο θαη ππάξρνπλ νξηζκέλεο βαζηθέο επηρεηξεζηαθέο δηαδηθαζίεο πνπ πξέπεη λα ζπκπεξηιεθζνύλ ζηελ αλαπηπμηαθή δηαδηθαζία, πξνθεηκέλνπ λα επηηεπρζεί ην επηζπκεηό επίπεδν αζθαιείαο. Σέηνηεο δηαδηθαζίεο είλαη ε πηζηνπνίεζε ρξήζηε (authentication), ε εμνπζηνδόηεζε (authorization), ε δηαρείξηζε πεξηνπζηαθώλ ζηνηρείσλ (asset handling), εηζαγσγή θαη θαηαρώξεζε (input), δηαδηθαζία εηζόδνπ θαη ειέγρνπ (logging and auditing). ηελ ηερλνινγία cloud νη δηαδηθηπαθέο εθαξκνγέο απνηεινύλ ινγηζκηθό πνπ παξέρεηαη σο ππεξεζίεο (Software as a Service - SaaS ). Τπάξρνπλ επαγγεικαηηθέο εθαξκνγέο πνπ παξέρνληαη σο SaaS ζε επηρεηξήζεηο έλαληη ζηαζεξήο ζπλδξνκήο ή ζπλδξνκήο αλάινγα κε ηε ρξήζε. Άιιεο εθαξκνγέο πξνζθέξνληαη δσξεάλ, εμνηθνλνκώληαο έζνδα από δηαθεκίζεηο πνπ εκθαλίδνληαη ζην interface ηεο εθαξκνγήο. ήκεξα πνιιέο επηρεηξήζεηο ιεηηνπξγνύλ κέζα από δηαδηθηπαθέο εθαξκνγέο αλνηθηνύ θώδηθα, όπσο ην ινγηζκηθό e-commerce πνπ θαζηζηά εύθνιε ηε δεκηνπξγία έλα online θαηαζηήκαηνο ιηαληθήο πώιεζεο. Οη πεξηζζόηεξεο επηρεηξήζεηο ζήκεξα δελ ρξεηάδεηαη λα αγνξάζνπλ εμνπιηζκό απνζήθεπζεο δεδνκέλσλ όπσο servers, θαζώο κπνξνύλ λα ελνηθηάζνπλ αληίζηνηρεο ππεξεζίεο ζε βξαρππξόζεζκε ρξνληθή βάζε από κηα πιεζώξα εηαηξηώλ πνπ 7

8 εηδηθεύνληαη ζην hosting, παξέρνληαο νινθιεξσκέλεο πινπνηήζεηο δηαδηθηπαθώλ εθαξκνγώλ. Δίλαη επίζεο ζύλεζεο γηα ηηο εηαηξίεο hosting λα πξνζθέξνπλ νινθιεξσκέλα παθέηα εμνπιηζκνύ θαη ηνπ απαξαίηεηνπ ινγηζκηθνύ γηα ηελ ππνζηήξημε ησλ επηρεηξεζηαθώλ αλαγθώλ ηεο εηαηξείαο. Αληίζηνηρεο θαηλνηνκίεο ζε όιεο ηηο πηπρέο ησλ εθαξκνγώλ web ζπκβάιινπλ ζηελ κείσζε ηνπ επηρεηξεζηαθνύ θόζηνπο θαη ηελ αύμεζε ηνπ αληαγσληζκνύ θαζώο κεηώλνπλ ηα εκπόδηα γηα ηελ είζνδν λέσλ επηρεηξήζεσλ. 1.4 Γομή Οη δηαδηθηπαθέο εθαξκνγέο ζπλήζσο ρσξίδνληαη ζε βαζκίδεο (tiers), όπνπ θάζε βαζκίδα έρεη έλαλ ζπγθεθξηκέλν ξόιν. Οη παξαδνζηαθέο εθαξκνγέο απνηεινύληαλ από κία βαζκίδα, ε νπνία ήηαλ εγθαηεζηεκέλε ζηνλ ππνινγηζηή ηνπ πειάηε. ηηο ζύγρξνλεο δηαδηθηπαθέο εθαξκνγέο εκθαλίδνληαη δηάθνξεο παξαιιαγέο βαζκίδσλ, σζηόζν ε πην θνηλή δνκή είλαη απηή ησλ ηξηώλ επηπέδσλ (παξνπζίαζε, εθαξκνγή θαη απνζήθεπζε κε απηή ηε ζεηξά). Ζ πξώηε βαζκίδα, απηή ηεο παξνπζίαζεο, αληηζηνηρεί ζην επίπεδν ηνπ web browser, ε δεύηεξε βαζκίδα, απηή ηεο εθαξκνγήο, αληηζηνηρεί ζε θάπνηα ηερλνινγία δηαρείξηζεο πεξηερνκέλσλ ηζηνζειίδσλ (όπσο ASP, ASP.NET, CGI, JSP / Java, PHP, Perl, Python) θαη ε ηξίηε βαζκίδα, απηή ηεο απνζήθεπζεο, αληηζηνηρεί ζηε βάζε δεδνκέλσλ. Ζ πξώηε βαζκίδα ζηέιλεη αηηήκαηα ηνπ ρξήζηε πξνο ηελ κεζαία βαζκίδα, ε νπνία ζηε ζπλέρεηα βάζεη απηώλ ππνβάιιεη εξσηήκαηα (queries) πξνο ηε βάζε δεδνκέλσλ, ελώ, αληίζηξνθα, ε αληαπόθξηζε ηεο βάζεο απνζηέιιεηαη ζηε κεζαία βαζκίδα ε νπνία ηελ επεμεξγάδεηαη θαη επηζηξέθεη ην απνηέιεζκα ζηελ πξώηε βαζκίδα, όπνπ ν web browser εκθαλίδεη ηηο πιεξνθνξίεο ζηνλ ρξήζηε ζε κηα θηιηθή θαη εύρξεζηε κνξθή. ε πην ζύλζεηεο εθαξκνγέο, κηα δνκή 3 βαζκίδσλ κπνξεί λα απνδεηρηεί πεξηνξηζηηθή. ηηο πεξηζζόηεξεο ηέηνηεο πεξηπηώζεηο κπνξεί λα ρξεζηκνπνηεζεί κηα πξνζέγγηζε n βαζκίδσλ, όπνπ ε κεζαία βαζκίδα ηεο θιαζζηθήο δνκήο, ε νπνία αληηζηνηρεί ζην επίπεδν ηεο εθαξκνγήο, δηαζπάηαη ζε έλα πην πνιύπινθν κνληέιν πεξηζζόηεξσλ βαζκίδσλ. ύκθσλα κε κηα άιιε πξνζέγγηζε κπνξεί λα πξνζηεζεί κηα επηπιένλ βαζκίδα πνπ ρσξίδεη ην επίπεδν ηεο βάζεο δεδνκέλσλ από ηα ππόινηπα, παξέρνληαο έλα εύρξεζην ηξόπν επεμεξγαζίαο δεδνκέλσλ. Γηα παξάδεηγκα, ηα δεδνκέλα πνπ αληηζηνηρνύλ ζηα ζηνηρεία θάζε πειάηε-ρξήζηε ζα κπνξνύζαλ λα αλαθηεζνύλ κέζσ κηαο ζπλάξηεζεο "list_clients()" αληί γηα έλα απεπζείαο SQL εξώηεκα πξνο ηνλ αληίζηνηρν πίλαθα ηεο βάζεο δεδνκέλσλ. Μηα ηέηνηα πξνζέγγηζε ζα παξείρε ηε δπλαηόηεηα αιιαγήο ή αληηθαηάζηαζεο ηεο βάζεο ρσξίο λα απαηηείηαη αιιαγή ζηνλ θώδηθα ηεο κεζαίαο βαζκίδαο εθαξκνγήο. Τπάξρνπλ θαη απινπζηεπκέλεο πξνζεγγίζεηο πνπ αληηκεησπίδνπλ κηα web εθαξκνγή σο αξρηηεθηνληθή δπν βαζκίδσλ, απηέο ηνπ client θαη ηνπ server. Ο πειάηεο ρεηξίδεηαη ηελ παξνπζίαζε, ν δηαθνκηζηήο ηε 8

9 βάζε δεδνκέλσλ, θαη ε βαζκίδα εθαξκνγήο ζηεξίδεηαη ζε έλα από ηα δύν ή θαη ζηα δύν. Αλ θαη απηή ε δνκή απμάλεη ηελ επεθηαζηκόηεηα ησλ εθαξκνγώλ θαη δηαρσξίδεη ηελ παξνπζίαζε θαη ηε βάζε δεδνκέλσλ, σζηόζν πεξηνξίδεη ηελ εμεηδίθεπζε πάλσ ζε θάζε επίπεδν. 1.5 Πλαίζια διαδικηςακών εθαπμογών Έλα πιαίζην δηαδηθηπαθήο εθαξκνγήο (Web Application Framework) είλαη έλα πιαίζην ινγηζκηθνύ πνπ έρεη ζρεδηαζηεί γηα λα ππνζηεξίμεη ηελ αλάπηπμε δπλακηθώλ ηζηνζειίδσλ, web εθαξκνγώλ, web ππεξεζηώλ θαη δηθηπαθώλ πόξσλ. Σν πιαίζην έρεη σο ζηόρν ηελ αληηκεηώπηζε ηελ επηβάξπλζε πνπ πξνθαιείηαη από ηελ αλαγθαζηηθή επαλάιεςε θνηλώλ δξαζηεξηνηήησλ πνπ είλαη αλαγθαίεο ζηελ αλάπηπμε ηζηνζειίδσλ. Γηα παξάδεηγκα, πνιιά πιαίζηα παξέρνπλ βηβιηνζήθεο γηα πξόζβαζε ζε βάζεηο δεδνκέλσλ, γηα δηαρείξηζε templates θαη sessions, θαη ζπρλά πξνσζνύλ ηελ επαλαρξεζηκνπνίεζε θώδηθα γηα αλάπηπμε λένπ ινγηζκηθνύ. 1.6 Απσιηεκηονικέρ πλαιζίυν Σα πεξηζζόηεξα πιαίζηα web εθαξκνγώλ βαζίδνληαη ζην πξόηππν model-view-controller (MVC). Βάζεη απηνύ ηνπ κνληέινπ δηαρσξίδεηαη ην κνληέιν δεδνκέλσλ (ζπλήζσο κηα βάζε) από ην πεξηβάιινλ εξγαζίαο ρξήζηε. Γεληθά ζεσξείηαη κηα θαιή πξαθηηθή θαζώο ζπκβάιιεη ζηελ παξαγσγή έηνηκσλ ηκεκάησλ θώδηθα θαη ηελ επαλαρξεζηκνπνίεζή ηνπο θαη επηηξέπεη ηελ ηαπηόρξνλε εθαξκνγή πνιιαπιώλ δηαζπλδέζεσλ. Απηό επηηξέπεη ηελ παξαγσγή δηαθνξεηηθώλ κνξθώλ δηαδηθηπαθώλ εθαξκνγώλ, όπσο ηζηνζειίδεο γηα ηνλ ππνινγηζηή ελόο ρξήζηε, θαη δηεπαθέο δηαδηθηπαθώλ ππεξεζηώλ γηα απνκαθξπζκέλεο εθαξκνγέο. ε αληίζεζε κε ηε δνκή ηξηώλ βαζκίδσλ, κε ηε ρξήζε ηνπ MVC, ην επίπεδν ρεηξηζκνύ ηεο εθαξκνγήο από πιεπξάο ρξήζηε, δηαθνξνπνηείηαη από ην επίπεδν ηεο ίδηαο ηεο εθαξκνγήο, ώζηε λα κπνξνύλ λα κεηαβάιινληαη απηόλνκα Σεσνικέρ Push-based και pull-based Σα πεξηζζόηεξα MVC πιαίζηα αθνινπζνύλ κηα αξρηηεθηνληθή push-based πνπ νλνκάδεηαη επίζεο action-based. Σα πιαίζηα απηά εθηεινύλ ελέξγεηεο πνπ πινπνηνύλ ηελ απαηηνύκελε επεμεξγαζία, θαη ζηε ζπλέρεηα ζηέιλνπλ ηα δεδνκέλα ζην επίπεδν view ηνπ κνληέινπ γηα ηελ παξνπζίαζε ησλ απνηειεζκάησλ ζηνλ ρξήζηε. Μεξηθά παξαδείγκαηα πιαηζίσλ πνπ ρξεζηκνπνηνύλ 9

10 απηήλ ηελ ηερληθή είλαη ηα Struts, Django, Ruby on Rails, Symfony, Yii, Spring MVC, Stripes, Play, CodeIgniter θαη Struts2. Μηα ελαιιαθηηθή ιύζε ζε απηό είλαη ε αξρηηεθηνληθή pull-based, πνπ κεξηθέο θνξέο νλνκάδεηαη επίζεο "component-based". ε απηή ηελ πξνζέγγηζε ην πιαίζην μεθηλάεη από ην επίπεδν view, ην νπνίν ζηε ζπλέρεηα κπνξεί λα αλαθηήζεη ηα επηζπκεηά απνηειέζκαηα από πνιιά ζηνηρεία ηεο εθαξκνγήο. ε απηή ηελ αξρηηεθηνληθή, πνιιά ζηνηρεία ηεο εθαξκνγήο κπνξνύλ λα ζπλδηακνξθώζνπλ κηα κνλαδηθή απεηθόληζε γηα ηνλ ρξήζηε. Lift, Tapestry, JBoss Seam, JavaServer Faces, (κ)micro, θαη Wicket είλαη κεξηθά ηέηνηα παξαδείγκαηα πιαηζίσλ ςζηήμαηα διασείπιζηρ πεπιεσομένος (CMS) ηα πιαίζηα web εθαξκνγώλ, δηαρείξηζε πεξηερνκέλνπ είλαη ν ηξόπνο νξγάλσζεο, θαηεγνξηνπνίεζεο θαη δηάξζξσζεο πιεξνθνξηώλ, όπσο αξρεία θεηκέλνπ, εηθόλεο, έγγξαθα, ήρνο θαη βίληεν, ώζηε λα κπνξνύλ λα απνζεθεύνληαη, λα δεκνζηεύνληαη θαη λα επεμεξγάδνληαη κε επθνιία θαη επειημία. Έλα ζύζηεκα δηαρείξηζεο πεξηερνκέλνπ (CMS) ρξεζηκνπνηείηαη γηα ηε ζπιινγή, δηαρείξηζε θαη δεκνζίεπζε πεξηερνκέλνπ, ηελ απνζήθεπζή ηνπ, είηε επηκέξνπο ζηνηρείσλ ή νιόθιεξσλ εγγξάθσλ, δηαηεξώληαο ηαπηόρξνλα ηε ζύλδεζε κεηαμύ ησλ ζηνηρείσλ. Μεξηθέο από ηηο εθαξκνγέο πνπ δηαρξνληθά ζεσξνύληαη CMS έρνπλ αξρίζεη λα ζεσξνύληαη πςεινύ επηπέδνπ πιαίζηα δηαδηθηπαθώλ εθαξκνγώλ. Γηα παξάδεηγκα, ε θεληξηθή δνκή ηνπ CMS Drupal παξέρεη έλα βαζηθό ππξήλα ηνπ νπνίνπ ε ιεηηνπξγία έρεη επεθηαζεί κέζσ ηκεκάησλ θώδηθα (modules) ηα νπνία παξέρνπλ ιεηηνπξγίεο πνπ ζπλδένληαη γεληθόηεξα κε πιαίζηα web εθαξκνγώλ. Οη ινγηζκηθέο πιαηθόξκεο Solodev θαη Joomla παξέρνπλ έλα ζύλνιν από APIs γηα ηελ θαηαζθεπή δηαδηθηπαθώλ θαη command-line εθαξκνγώλ. Ωζηόζν, είλαη πιένλ ζπδεηήζηκν θαηά πόζνλ ε δηαρείξηζε πεξηερνκέλνπ" είλαη ν βαζηθόο ξόινο ησλ ελ ιόγσ ζπζηεκάησλ, εηδηθά όηαλ θάπνηα, όπσο ην SilverStripe, παξέρνπλ έλα αληηθεηκελνζηξαθέο MVC πιαίζην. Δπηπξόζζεηα modules επηηξέπνπλ πιένλ απηά ηα ζπζηήκαηα λα ιεηηνπξγνύλ σο πιήξεηο εθαξκνγέο πέξα από ην πεδίν ηεο δηαρείξηζεο πεξηερνκέλνπ. Μπνξνύλ λα παξέρνπλ ιεηηνπξγηθά APIs, ιεηηνπξγηθά πιαίζηα, πξόηππα θσδηθνπνίεζεο, θαη πνιιέο από ηηο ιεηηνπξγίεο πνπ παξαδνζηαθά ζπλδένληαη κε ηα απζεληηθά πιαίζηα δηαδηθηπαθώλ εθαξκνγώλ. 1.7 Πλεονεκηήμαηα - Οη δηαδηθηπαθέο εθαξκνγέο δελ απαηηνύλ θακία πνιύπινθε δηαδηθαζία γηα ηελ εγθαηάζηαζε θαη αλάπηπμή ηνπο ζε κεγάινπο επηρεηξεκαηηθνύο νξγαληζκνύο. Ζ ιεηηνπξγία ηνπο απαηηεί κόλν έλα ζπκβαηό πξόγξακκα πεξηήγεζεο ηζηνζειίδσλ. 10

11 - Σα πξνγξάκκαηα πεξηήγεζεο ηζηνζειίδσλ, ζπλήζσο θαηαιακβάλνπλ από ιίγν έσο ειάρηζην ρώξν ζηνλ ππνινγηζηή ηνπ πειάηε-ρξήζηε. - Γελ απαηηνύλ θακία δηαδηθαζία αλαβάζκηζεο δεδνκέλνπ όηη όια ηα λέα ραξαθηεξηζηηθά παξαιακβάλνληαη θαηεπζείαλ από ηνλ δηαθνκηζηή. - Δλζσκαηώλνληαη εύθνια ζε άιιεο δηαδηθαζίεο πνπ βαζίδνληαη ζηνλ δηαθνκηζηή, όπσο ην ειεθηξνληθό ηαρπδξνκείν θαη ε αλαδήηεζε. - ηηο πεξηζζόηεξεο πεξηπηώζεηο παξέρνπλ cross-platform ζπκβαηόηεηα (Windows, Mac, Linux, θιπ.), επεηδή εθηεινύληαη κέζα από ζε έλα παξάζπξν ηνπ web browser. - Με ηελ θαζηέξσζε ηεο HTML5, νη πξνγξακκαηηζηέο κπνξνύλ λα δεκηνπξγήζνπλ δηαδξαζηηθά πεξηβάιινληα πνπ λα εθηεινύληαη ζηνπο web browsers. Μεξηθά παξαδείγκαηα ησλ λέσλ ραξαθηεξηζηηθώλ είλαη ε ελζσκάησζε αξρείσλ ήρνπ, βίληεν, θηλνύκελσλ εηθόλσλ, θαζώο θαη ε βειηησκέλε αληηκεηώπηζε ιαζώλ - Οη ζύγρξνλεο δηαδηθηπαθέο εθαξκνγέο ππνζηεξίδνπλ κεγαιύηεξε δηαδξαζηηθόηεηα θαη ζεκαληηθά βειηησκέλε ρξεζηηθόηεηα κέζσ ηερλνινγηώλ όπσο ε AJAX πνπ ρεηξίδνληαη απνηειεζκαηηθά ηελ αληαιιαγή δεδνκέλσλ κεηαμύ ηνπ browser θαη ηνπ δηαθνκηζηή. - Δθαξκόδνληαη απνηειεζκαηηθόηεξα ζε λέεο ζπζθεπέο ρξεζηώλ (π.ρ. smartphones, tablets) επεηδή ζπλήζσο ππάξρεη εγθαηεζηεκέλν πξόγξακκα πεξηήγεζεο ζε απηέο. 1.8 Μειονεκηήμαηα - ηελ πξάμε, ηα ζπζηήκαηα δηθηύνπ, ζε ζύγθξηζε κε ην πάρνο ηνπο πειάηεο, ζπλήζσο αλαγθάζεη ζεκαληηθή ζπζία γηα ηελ εκπεηξία ηνπ ρξήζηε θαη ηε βαζηθή ρξεζηηθόηεηα. - Οη εθαξκνγέο απαηηνύλ πιήξε ζπκβαηόηεηα κε ηνπο web browsers. Δάλ έλαο δηαλνκέαο ηνπ πξνγξάκκαηνο πεξηήγεζεο (πρ Microsoft γηα ηνλ IE) απνθαζίζεη λα κελ πεξηιάβεη έλα ζπγθεθξηκέλν ραξαθηεξηζηηθό, ή εγθαηαιείςεη κηα ζπγθεθξηκέλε πιαηθόξκα ή ιεηηνπξγηθό ζύζηεκα, απηό κπνξεί λα επεξεάζεη έλαλ ηεξάζηην αξηζκό ησλ ρξεζηώλ. - Ζ κε ζπκκόξθσζε κε ηα ζπλεζηζκέλα πξόηππα δεκηνπξγίαο εγγξάθσλ από κε-θαζηεξσκέλα πξνγξάκκαηα ζπρλά πξνθαιεί πξνβιήκαηα θαηά ηελ θνηλή ρξήζε αξρείσλ. - Οη εθαξκνγέο βαζίδνληαη ζε αξρεία πνπ είλαη απνζεθεπκέλα ζε απνκαθξπζκέλνπο δηαθνκηζηέο εληόο ηνπ Γηαδηθηύνπ. Ωο εθ ηνύηνπ, όηαλ ε ζύλδεζε δηαθόπηεηαη, ε εθαξκνγή δελ είλαη πιένλ ρξεζηκνπνηήζηκε. Ωζηόζν, ππάξρνπλ API ηεο HTML5 όπσο ην Offline Web application πνπ κπνξεί λα θνξηώζεη θαη λα εγθαηαζηήζεη ηελ εθαξκνγή ζηνλ ηνπηθό ππνινγηζηή, γηα offline ρξήζε. Σν Gears, (πξώελ Google Gears, δελ αλαπηύζζεηαη πεξαηηέξσ πιένλ θαη δελ ζηεξίδεηαη από ηε Google), είλαη έλα θαιό παξάδεηγκα software πνπ παξέρεη ηέηνηα δπλαηόηεηα. 11

12 - Γεδνκέλνπ όηη πνιιέο web εθαξκνγέο δελ είλαη open source, ππάξρεη επίζεο κηα απώιεηα επειημίαο, θαζηζηώληαο ηνπο ρξήζηεο εμαξηώκελνπο από δηαθνκηζηέο ηξίησλ, ρσξίο ηε δπλαηόηεηα κεηαηξνπώλ ζην ινγηζκηθό ή ηεο ιεηηνπξγίαο ησλ εθαξκνγώλ εθηόο ζύλδεζεο (ζηηο πεξηζζόηεξεο πεξηπηώζεηο). - Ζ ιεηηνπξγία ηνπο εμαξηάηαη εμ νινθιήξνπ από ηε δηαζεζηκόηεηα ηνπ δηαθνκηζηή πνπ παξέρεη ηελ εθαξκνγή. Δάλ ε εηαηξεία πνπ παξέρεη ηνλ server ρξενθνπήζεη νη ρξήζηεο ράλνπλ ηε δπλαηόηεηα ρξήζεο ηεο εθαξκνγήο, ζε αληίζεζε κε ην παξαδνζηαθά εγθαηεζηεκέλν ινγηζκηθό ην νπνίν ζπλερίδεη λα ιεηηνπξγεί αθόκε θαη κεηά ηελ θαηάξξεπζε ηεο εηαηξείαο πνπ ην παξήγαγε - Ζ εηαηξεία παξαγσγήο έρεη πνιύ κεγαιύηεξν έιεγρν ηνπ ινγηζκηθνύ θαη ηεο ιεηηνπξγηθόηεηάο ηνπ. Μπνξεί λα αλαπηύμεη λέα ραξαθηεξηζηηθά κε βάζεη ην δηθό ηεο ρξνλνδηάγξακκα θαη αλεμαξηήησο ησλ ζθαικάησλ πνπ εληνπίδνπλ νη ρξήζηεο, λα πξνσζήζεη αλεπηζύκεηα ραξαθηεξηζηηθά ή λα κείσζε ηελ επξπδσληθόηεηα ηνπ δηαθνκηζηή γηα ιόγνπο κείσζεο θόζηνπο. Αλ θαη ε ηθαλνπνίεζε ησλ ρξεζηώλ είλαη πάληα έλαο επηζπκεηόο ζηόρνο γηα κηα εηαηξία, ζπλήζσο νη ρξήζηεο ησλ δηαδηθηπαθώλ εθαξκνγώλ έρνπλ ιηγόηεξεο επηινγέο ζε απηέο ηηο πεξηπηώζεηο, εθηόο θαη αλ θάπνηνο αληαγσληζηήο πξνζθέξεη κηα θαιύηεξε ιύζε. - Ζ εηαηξεία κπνξεί ζεσξεηηθά λα παξαθνινπζεί νηηδήπνηε θάλνπλ νη ρξήζηεο. Απηό κπνξεί λα πξνθαιέζεη πξνβιήκαηα πξνζηαζίαο ηεο ηδησηηθόηεηαο. - Δθηηκάηαη όηη ιόγσ online δηαδηθηπαθώλ εθαξκνγώλ όπσο ην Facebook θαη ην Google Apps ην Γηαδίθηπν έρεη λα γίλεη πνιύ ηδηόθηεην από ηηο πξώηεο εθδόζεηο ησλ Microsoft Windows. 2 Σεσνολογία διαδικηςακών εθαπμογών ύκθσλα κε απηό ην κνληέιν server-client, ε δηαδηθηπαθή εθαξκνγή ιεηηνπξγεί σο εμήο. Αξρηθά ν πειάηεο-ρξήζηεο εθηειεί θάπνην αίηεκα κέζα από ην πξόγξακκα πεξηήγεζεο ηζηνζειίδσλ πνπ είλαη εγθαηεζηεκέλν ζηνλ ππνινγηζηή ηνπ, δεηώληαο θάπνηα δεδνκέλα. ηε ζπλέρεηα ην αίηεκα κεηαθέξεηαη ζηνλ ππνινγηζηή-δηαθνκηζηή, ν νπνίνο αθνύ επηθνηλσλήζεη κε ηε βάζε δεδνκέλσλ ηεο εθαξκνγήο επεμεξγάδεηαη ηα δεδνκέλα θαη ζηέιλεη ην απνηέιεζκα κέζσ ηνπ δηαδηθηύνπ πίζσ ζηνλ πειάηε-ρξήζηε, ζηνλ νπνίν γίλεηαη νξαηό κέζσ ηζηνζειίδσλ νη νπνίεο είλαη θσδηθνπνηεκέλεο ζε γιώζζα HTML. Δπίζεο ν ρξήζηεο πηζαλόλ λα κπνξεί λα εθηειέζεη από ηνλ browser επηπιένλ εληνιέο κέζα από ηνλ θώδηθα Javascript πνπ κπνξεί λα πεξηέρεη ε ζπγθεθξηκέλε ζειίδα, ρώξηο λα επηβαξύλεη επηπιένλ ηνλ δηαθνκηζηή. Δίλαη πξνθαλέο όηη κηα δηαδηθηπαθή εθαξκνγή εκπιέθεη ζηελ ιεηηνπξγία ηεο έλα ζύλνιν από ηερλνινγίεο (είηε hardware είηε software), ηηο νπνίεο πνιύ ζπλνπηηθά κπνξνύκε λα ρσξίζνπκε 12

13 ζε δπν θαηεγνξίεο αλάινγα κε ηνλ ππνινγηζηή κε ηνλ νπνίν ζπλδένληαη: απηέο πνπ ζπλδένληαη κε ην δηαθνκηζηή (server-based) θαη απηέο πνπ ζπλδένληαη κε ηνλ πειάηε-ρξήζηε (client-based). Σν γεγνλόο όηη απηέο νη δπν θαηεγνξίεο ηερλνινγηώλ δηακνξθώλνληαη αλεμάξηεηα ε κία από ηελ άιιε, απνηειεί έλα βαζηθό πιενλέθηεκα ηνπ πεδίνπ ησλ δηαδηθηπαθώλ εθαξκνγώλ. Παξά ην γεγνλόο όηη ππάξρνπλ θαη ελαιιαθηηθέο ηερλνινγίεο (ίζσο θαη κε κεγαιύηεξεο δπλαηόηεηεο) πξνθεηκέλνπ έλαο πξνγξακκαηηζηήο λα γξάςεη server-based ή client-based θώδηθα γηα λα δεκηνπξγήζεη κηα web εθαξκνγή(πρ Java θαη servlets technology), ζηα πιαίζηα απηήο ηεο εξγαζίαο ζα αλαιύζνπκε θπξίσο ηηο ηερλνινγίεο PHP HTML - Javascript πνπ είλαη αξθεηά δηαδεδνκέλεο θαη γη' απηό επηιέρζεθαλ θαη γηα ηελ πινπνίεζε ηεο εθαξκνγήο. Δικόνα 2.1: Αλαπαξάζηαζε κηαο εθαξκνγήο 3 βαζκίδσλ (Πεγή:Mohammad Atwi, 2011) 2.1 Ππογπάμμαηα πεπιήγηζηρ διαδικηύος (Internet Web Browsers) Έλαο Web browser (θπιινκεηξεηήο ηζηνζειίδσλ, πινεγόο Web, πξόγξακκα πεξηήγεζεο Web ή πεξηεγεηήο Ηζηνύ) είλαη έλα ινγηζκηθό πνπ επηηξέπεη ζηνλ ρξήζηε ηνπ λα πξνβάιιεη, θαη λα αιιειεπηδξά κε, θείκελα, εηθόλεο, βίληεν, κνπζηθή, παηρλίδηα θαη άιιεο πιεξνθνξίεο ζπλήζσο αλαξηεκέλεο ζε κηα ηζηνζειίδα ελόο ηζηόηνπνπ ζηνλ Παγθόζκην Ηζηό ή ζε έλα ηνπηθό δίθηπν. Σν θείκελν θαη νη εηθόλεο ζε κηα ηζηνζειίδα κπνξεί λα πεξηέρνπλ ππεξζπλδέζκνπο (hyperlinks) πξνο άιιεο ηζηνζειίδεο ηνπ ίδηνπ ή δηαθνξεηηθνύ ηζηόηνπνπ. Ο Web browser επηηξέπεη ζηνλ ρξήζηε ηελ γξήγνξε θαη εύθνιε πξόζβαζε ζε πιεξνθνξίεο πνπ βξίζθνληαη ζε δηάθνξεο ηζηνζειίδεο θαη ηζηόηνπνπο ελαιιάζζνληαο ηηο ηζηνζειίδεο κέζσ ησλ ππεξζπλδέζκσλ. Οη browsers ρξεζηκνπνηνύλ ηε γιώζζα κνξθνπνίεζεο HTML γηα ηελ πξνβνιή ησλ ηζηνζειίδσλ, σζηόζν ε εκθάληζε κηαο ηζηνζειίδαο κπνξεί λα δηαθέξεη αλάινγα κε ηνλ browser θαζώο δελ εληνπίδεηαη πάληα ε ίδηα ζπκβαηόηεηα κε ην ζύλνιν ησλ ηδηνηήησλ ηεο γιώζζαο. 13

14 Γηα θάζε browser δηαηίζεληαη, επίζεο, θαη αξθεηά πξόζζεηα ζηνηρεία («add-ons» ή «plugins»), κε ζηόρν ηελ επαύμεζε ησλ δπλαηνηήησλ ηνπο, ηε βειηίσζε ηεο ρξεζηηθόηεηαο ηνπο θαη ηελ πξνζηαζία ηνπ ρξήζηε ζε ζέκαηα αζθάιεηαο. Οη γλσζηόηεξνη browsers είλαη νη: Windows Internet Explorer Mozilla Firefox Apple Safari Netscape Navigator Opera Pandora Google Chrome (πην πξόζθαηνο) Άιινη browsers πνπ πιένλ ρξεζηκνπνηνύληαη όιν θαη ιηγόηεξν είλαη νη: Maxthon Avant Smart Bro Slim Browser Arena ibrowse 2.2 Σο ππυηόκολλο HTTP Γηα ηελ αληαιιαγή πιεξνθνξηώλ ζε απηό ην κνληέιν ιεηηνπξγίαο ηνπ δηαδηθηύνπ ππεύζπλν είλαη ην πξσηόθνιιν HTTP. Σν πξσηόθνιιν HTTP είλαη ην πην ζπλεζηζκέλν ζην δηαδίθηπν. Ζ νλνκαζία ηνπ πξνέξρεηαη από ην HyperText Transfer Protocol (Πξσηόθνιιν Μεηαθνξάο Τπεξθεηµέλνπ) θαη ρξεζηκνπνηείηαη από ην To HTTP επηηξέπεη ζηνλ πειάηε (client) λα ζπλδεζεί κε ηνλ εμππεξεηεηή (server) θαη λα πινπνηήζεη ηελ αίηεζε γηα δεδνκέλα από ηνλ πξώην ζηνλ δεύηεξν. Ζ HTTP αίηεζε πνπ θάλεη ν client, ιακβάλεηαη από ηνλ server θαη όηαλ απηόο ηελ απνδερηεί, επηζηξέθεη κηα απάληεζε ζηνλ client ζε κνξθή ππεξθεηκέλνπ αλάινγα κε ην πεξηερόκελν ην νπνίν έρεη αηηεζεί λα ιάβεη. Σν ππεξθείκελν είλαη κηα εηδηθά δνκεκέλε κνξθή θεηκέλνπ θαη απνηειείηαη από θόκβνπο θαη ζπλδέζκνπο. Ζ κνξθή ηνπ είλαη εηδηθά δνκεκέλε γηαηί ε αλάγλσζή ηνπ δελ αθνινπζεί ηελ 14

15 γξακκηθή θαη ζεηξηαθή αλάγλσζε όπσο ζηα ζπκβαηηθά βηβιία, αιιά είλαη ηέηνηα ώζηε λα επηηξέπεηαη ε ειεύζεξε πινήγεζε ζηα δηάθνξα έγγξαθα κε ηε ζεηξά πνπ επηζπκεί ν αλαγλώζηεο. Γηα απηόλ ηνλ ιόγν ην ππεξθείκελν είλαη έλα δίθηπν θόκβσλ θαη ζπλδέζκσλ νη νπνίνη νδεγνύλ ζε δηαθνξεηηθά ζεκεία θαη δηαθνξεηηθέο ζειίδεο ηνπ θεηκέλνπ. Σν ππεξθείκελν ηειηθά θσδηθνπνηείηαη κε ηνλ ΖΣML θώδηθα, κε ηνλ νπνίν νη browsers είλαη πξνγξακκαηηζκέλνη λα κεηαθξάδνπλ θαη λα πξνβάιινπλ θαηάιιεια ζηελ νζόλε ηνπ ρξήζηε. Σν HTTP νξίδεη κεζόδνπο γηα λα ππνδείμεη ηελ επηζπκεηή ελέξγεηα πνπ ζα εθηειεζηεί ζε ζπγθεθξηκέλεο πεγέο δεδνκέλσλ. πρλά, ε πεγή αληηζηνηρεί ζε έλα αξρείν ή ζην απνηέιεζκα ελόο εθηειέζηκνπ exe. πνπ είλαη εγθαηεζηεκέλν ζην δηαθνκηζηή. Ζ έθδνζε HTTP/1.0 όξηζε αξρηθά ηηο κεζόδνπο GET, POST θαη HEAD θαη ε HTTP/1.1 πξόζζεζε 5 λέεο κεζόδνπο: OPTIONS, PUT, DELETE, TRACE θαη CONNECT. Κάζε πειάηεο-ρξήζηεο κπνξεί λα ρξεζηκνπνηήζεη νπνηαδήπνηε κέζνδν θαη ν δηαθνκηζηήο κπνξεί λα ξπζκηζηεί ώζηε λα ππνζηεξίδεη νπνηνλδήπνηε ζπλδπαζκό ησλ κεζόδσλ. Παξαθάησ δίλεηαη κηα ζύληνκε πεξηγξαθή ησλ κεζόδσλ: GET Με απηή ηε κέζνδν ν ρξήζηεο θαηαζέηεη απιά αίηεκα γηα κηα αλαπαξάζηαζε ησλ επηζπκεηώλ απνηειεζκάησλ. Οη αηηήζεηο πνπ ρξεζηκνπνηνύλ ηελ GET πξννξίδνληαη κόλν γηα αλάθηεζε ησλ δεδνκέλσλ θαη δε ζα έπξεπε λα έρνπλ θακηά άιιε επίδξαζε ζηνλ server.(αζθαιήο κέζνδνο - ηζρύεη επίζεο θαη γηα θάπνηεο άιιεο κεζόδνπο ηνπ HTTP). Σν W3C (World Wide Web Consortium βαζηθόο δηεζλήο νξγαληζκόο πξνηύπσλ γηα ηνλ Παγθόζκην Ηζηό) έρεη δεκνζηεύζεη θαηεπζπληήξηεο αξρέο ζρεηηθά κε ην δηαρσξηζκό αζθαιείο-κε αζθαιείο κέζνδνη. Απνηειεί από ηηο βαζηθέο κεζόδνπο απνζηνιήο αηηήζεσλ ηνπ HTTP. HEAD Με απηή ηε κέζνδν ν ρξήζηεο θάλεη αίηεζε γηα ηελ αλάθηεζε κόλν ηεο θεθαιίδαο (head) ηεο επηζπκεηήο HTML ζειίδαο, ρσξίο ην ζώκα (body) πνπ πεξηέρεη ηα ππόινηπα δεδνκέλα. Δίλαη ηδηαίηεξα ρξήζηκε γηα πεξηπηώζεηο αλάθηεζεο meta-data πιεξνθνξηώλ πνπ εκπεξηέρνληαη ζηηο θεθαιίδεο ησλ ζειίδσλ, ρσξίο λα ρξεηάδεηαη ε κεηαθνξά ηνπ ζπλόινπ ηνπ πεξηερνκέλνπ. POST Με απηή ηε κέζνδν ν ρξήζηεο απνζηέιιεη έλα ζεκαληηθό όγθν δεδνκέλσλ πξνο επεμεξγαζία καδί κε ηελ αίηεζε καδί κε ηελ αίηεζε πξνο ηνλ δηαθνκηζηή. Σα δεδνκέλα πνπ απνζηέιινληαη ζα κπνξνύζαλ λα είλαη, γηα παξάδεηγκα, κηα ππνζεκείσζε, έλα κήλπκα από έλα πίλαθα αλαθνηλώζεσλ, ιίζηα κε mail θιπ. Σα δεδνκέλα απηά δελ εκθαλίδνληαη ζην url όπσο ζπκβαίλεη κε ηηο ηηκέο ησλ παξακέηξσλ πνπ απνζηέιινληαη κε ηε κέζνδν GET θαη ζπλήζσο είλαη ην απνηέιεζκα ηεο ππνβνιήο ζηνηρείσλ κέζσ κηαο θόξκαο γηα κηα δηαδηθαζία επεμεξγαζίαο 15

16 δεδνκέλσλ ή έλα αληηθείκελν γηα λα πξνζηεζεί ζε κηα βάζε δεδνκέλσλ. Μαδί κε ηελ GET είλαη από ηηο ζεκαληηθόηεξεο κεζόδνπο ηνπ HTTP. PUT Με απηή ηε κέζνδν ν ρξήζηεο δεηάεη από ηνλ δηαθνκηζηή ε νληόηεηα ησλ δεδνκέλσλ πνπ απνζηέιινληαη λα απνζεθεπζνύλ ππό ην παξερόκελν URI (Uniform resource identifier ζύλνιν ραξαθηήξσλ γηα ηελ ηαπηνπνίεζε κηαο ζειίδαο, ην URL απνηειεί έλα ππνζύλνιό ηνπ). Αλ ην URI ήδε ππάξρεη, ηξνπνπνηείηαη, αλ όρη ηόηε δεκηνπξγείηαη από ηνλ ρξήζηε. Πξόθεηηαη πξνθαλώο γηα κε αζθαιή κέζνδν πνπ αιιάδεη ην πεξηερόκελν ηνπ server. DELETE Γηαγξάθεη ηε ζπγθεθξηκέλε πεγή δεδνκέλσλ, ην αληίζηξνθν ηεο PUT. αθέζηαηα κε αζθαιήο κέζνδνο. TRACE ηέιλεη πίζσ ζηνλ πειάηε-ρξήζηε ην αίηεκα πνπ πξαγκαηνπνηήζεθε, έηζη ώζηε λα δηαπηζησζνύλ (αλ ππάξρνπλ) αιιαγέο ή πξνζζήθεο πνπ έρνπλ γίλεη από ελδηάκεζνπο servers. OPTIONS Δπηζηξέθεη ηηο κεζόδνπο ηνπ HTTP πνπ ππνζηεξίδεη ν δηαθνκηζηήο γηα ηε ζπγθεθξηκέλε δηεύζπλζε URL. Μπνξεί λα ρξεζηκνπνηεζεί γηα λα ειέγμεη ηε ιεηηνπξγηθόηεηα ελόο web server. CONNECT Μεηαηξέπεη ηε ζύλδεζε κέζσ ηεο νπνίαο πξαγκαηνπνηείηαη ε αίηεζε ζε έλα TCP/IP θαλάιη επηθνηλσλίαο, ζπλήζσο γηα λα κπνξεί λα πξαγκαηνπνηεζεί κηα SSL θξππηνγξαθεκέλε επηθνηλσλία (HTTPS) κέζσ ελόο α-θξππηνγξάθεηνπ HTTP proxy δηαθνκηζηή. Μπνξεί λα ρξεζηκνπνηεζεί γηα λα απνθεπρζεί έλα firewall, πνπ ελώ ζα κπιόθαξε ηελ αξρηθή αίηεζε, δελ εκπνδίδεη ηελ ηειηθή PATCH Υξεζηκνπνηείηαη γηα λα εθαξκόζεη κεξηθέο ηξνπνπνηήζεηο ζε κηα πεγή δεδνκέλσλ Οη δηαθνκηζηέο HTTP απαηηείηαη λα ζηεξίδνπλ ηνπιάρηζηνλ ηηο κεζόδνπο GET θαη HEAD θαη, όπνηε είλαη δπλαηόλ, θαη ηε κέζνδν OPTIONS. Αζθάλεια Οξηζκέλεο από ηηο κεζόδνπο (γηα παξάδεηγκα, HEAD, GET, OPTIONS θαη TRACE) νξίδνληαη σο αζθαιείο, πξάγκα πνπ ζεκαίλεη όηη πξννξίδεηαη κόλν γηα ηελ αλάθηεζε πιεξνθνξηώλ θαη δελ αιιάδνπλ ηελ θαηάζηαζε ηνπ δηαθνκηζηή. Αληίζεηα, κέζνδνη όπσο νη POST, PUT, DELETE 16

17 θαη PATCH πξννξίδνληαη γηα δξάζεηο πνπ κπνξεί λα πξνθαιέζνπλ αλεπηζύκεηεο ελέξγεηεο, είηε ζην δηαθνκηζηή, ή εμσηεξηθέο παξελέξγεηεο όπσο ρξεκαηηθέο ζπλαιιαγέο ή απνζηνιή ειεθηξνληθνύ ηαρπδξνκείνπ. Σέηνηεο κέζνδνη, σο εθ ηνύηνπ, δελ ρξεζηκνπνηνύληαη ζπλήζσο από web robots (δηαδηθηπαθέο εθαξκνγέο πνπ εθηεινύλ απηνκαηνπνηεκέλεο ιεηηνπξγίεο ζην δηαδίθηπν) ή web crawlers (κηα ππνθαηεγνξία ησλ web robots). Παξά ηελ πξνβιεπόκελε αζθάιεηα ζηε ρξήζε ηεο GET, ζηελ πξάμε ν ρεηξηζκόο ηεο από ηνλ δηαθνκηζηή ηερληθά δελ αληηκεησπίδεη θαλέλα πεξηνζξηζκό. Ωο εθ ηνύηνπ, απξόζεθηε ε ζθόπηκα θαθόβνπιε ρξήζε ηεο κπνξεί λα πξνθαιέζεη θάπνηνπ είδνπο αιιαγέο ζηνλ server όπσο πξνβιήκαηα ζην web caching, ζηελ εύξπζκε ιεηηνπξγία κεραλώλ αλαδήηεζεο θαη άιισλ απηνκαηνπνηεκέλσλ κέζσλ. ήκεξα ην πξσηόθνιιν απηό είλαη πιένλ θαζηεξσκέλν θαη δηαδεδνκέλν ζε ζεκείν πνπ ζρεδόλ όινη νη browsers ην ζεσξνύλ δεδνκέλν θαη ην ρξεζηκνπνηνύλ αθόκα θαη ζε πεξηπηώζεηο πνπ ν ρξήζηεο δελ θαζνξίζεη πνην πξσηόθνιιν ζέιεη λα ρξεζηκνπνηήζεη. Αλ δειαδή ν ρξήζηεο δελ πεξηιάβεη ην όλνκα ηνπ πξσηνθόιινπ πξηλ ηελ url δηεύζπλζε ζηελ νπνία ζέιεη λα ζπλδεζεί πρ αληί γηα γξάςεη κόλν my.url ζηελ πιεηνςεθία ησλ πεξηπηώζεσλ ην http ζα πξνζηεζεί απηόκαηα θαη όρη θάπνην άιιν πξσηόθνιιν (https, ftp, mail, gopher θιπ.) 2.3 HTML H HTML (Hypertext Markup Language γιώζζα κνξθνπνίεζεο ππεξθεηκέλνπ) είλαη ε βαζηθή γιώζζα πνπ ρξεζηκνπνηείηαη γηα ηελ δεκηνπξγία ηζηνζειίδσλ ζην δηαδίθηπν. Αξρηθά ε HTML είρε ζρεδηαζηεί κε ζθνπό απνθιεηζηηθά ηελ κνξθνπνίεζε θαη πξνβνιή θεηκέλνπ ζηηο ηζηνζειίδεο, όκσο κε ηνλ θαηξό εμειίρζεθε θαη πιένλ κπνξεί λα θάλεη θαη άιιεο ιεηηνπξγίεο όπσο ε ελζσκάησζε εηθόλσλ, ήρνπ θιπ ζηηο ηζηνζειίδεο. H HTML είλαη γξακκέλν κε ηε κνξθή HTML ζηνηρείσλ (elements) πνπ απνηεινύληαη από εηηθέηεο (tags) νη νπνίεο πεξηθιείνληαη ζε αγθύιεο (πρ <html>). Οη εηηθέηεο ηεο HTML ζπλήζσο εκθαλίδνληαη ζε δεύγε, όπσο <h1> θαη </ h1>, αλ θαη νξηζκέλεο εηηθέηεο αληηπξνζσπεύνπλ θελά ζηνηρεία θαη έηζη δελ εκθαλίδνληαη ζε δεύγε, όπσο γηα παξάδεηγκα <img>. Ζ πξώηε εηηθέηα ζε έλα δεπγάξη είλαη ε εηηθέηα έλαξμεο, θαη ε δεύηεξε εηηθέηα είλαη ε εηηθέηα ηέινπο. (επίζεο νλνκάδνληαη εηηθέηεο αλνίγκαηνο θαη εηηθέηεο θιεηζίκαηνο). Κάζε δεπγάξη εηηθεηώλ πεξηθιείεη ηα ζηνηρεία εθείλα ηεο ζειίδαο (θείκελν, εηθόλεο θιπ) πνπ πηνζεηνύλ ηα ραξαθηεξηζηηθά πνπ αληηζηνηρνύλ ζηηο εηηθέηεο (πρ ε εηηθέηα <p> παξνπζηάδεη ζε ζηπι παξαγξάθνπ όηη θείκελν πεξηθιείεηαη ζην δεύγνο εηηθεηώλ). Οη εηηθέηεο ηεο HTML νξίδνπλ ζπλνιηθά ηα δηάθνξα πεδία ηεο ηζηνζειίδαο, ηελ κνξθνπνίεζε ηεο, θαζώο θαη ηελ εηζαγσγή πηλάθσλ, θσηνγξαθηώλ θαη ππεξζπλδέζκσλ. 17

18 Ο θύξηνο ζθνπόο ηεο HTML είλαη ε πξνβνιή ζηαηηθώλ ηζηνζειίδσλ. Ζ πξνβνιή ησλ ηζηνζειίδσλ γίλεηαη κέζσ ησλ browsers. Ο ζθνπόο ελόο web browser είλαη λα επεμεξγαζηεί ηα ζηνηρεία ελόο HTML θώδηθα θαη λα ηα ζπλζέζεη ζε νπηηθό ή αθνπζηηθό πεξηερόκελν ζειίδαο. Ο browser δελ εκθαλίδεη ηηο εηηθέηεο ηεο HTML, αιιά ηηο ρξεζηκνπνηεί γηα λα εξκελεύζεη ην πεξηερόκελν ηεο ζειίδαο. ηνλ θώδηθα ηεο HTML πεξηγξάθεηαη ε δνκή κηαο ηζηνζειίδαο καδί κε ραξαθηεξηζηηθά γηα ηελ παξνπζίαζή ηεο, γεγνλόο πνπ ηελ θαζηζηά πεξηζζόηεξν κηα γιώζζα παξνπζίαζεο εγγξάθσλ θαη όρη κηα γιώζζα πξνγξακκαηηζκνύ. Ζ βαζηθή δνκή ελόο αξρείνπ HTML είλαη ε εμήο: <HTML> -- Αξρή ΖΣΜL αξρείνπ <HEAD> Αλάκεζα ζε απηέο ηηο εηηθέηεο ππάξρεη πεξηερόκελν πνπ πεξηγξάθεη ηελ ζειίδα, όπσο ν ηίηινο ηεο, ε γιώζζα πνπ ππνζηεξίδεη, δηάθνξεο ιέμεηο-θιεηδηά θιπ <HEAD> <BODY> Αλάκεζα ζε απηέο ηηο εηηθέηεο ππάξρεη ην πεξηερόκελν πνπ ζα πξνβιεζεί από ηνλ browser, όπσο ηα θείκελα, νη εηθόλεο θαη νη θόξκεο. </BODY> </HTML> -- Σέινο ΖΣΜL αξρείνπ Ιδιόηηηερ (attributes) Μηα ηδηόηεηα ελόο ζηνηρείνπ ηεο HTML ηξνπνπνηεί απηό ην ζηνηρείν αλάινγα κε ηε ηηκή ηεο. Οη ηδηόηεηεο εκθαλίδνληαη σο δεύγε νλόκαηνο-ηηκήο, πνπ δηαρσξίδνληαη από ην "=", θαη είλαη γξακκέλα κέζα ζηελ εηηθέηα έλαξμεο ελόο ζηνηρείνπ, κεηά ην όλνκα ηνπ ζηνηρείνπ. Ζ αμία κπνξεί λα πεξηθιείεηαη ζε κνλά ή δηπιά εηζαγσγηθά, αλ θαη νη ηηκέο πνπ απνηεινύληαη από νξηζκέλνπο ραξαθηήξεο κπνξνύλ λα κέλνπλ ρσξίο εηζαγσγηθά ζηελ HTML. Γεληθά ε κε ηνπνζέηεζε εηζαγσγηθώλ ζεσξείηαη κε-αζθαιήο γηα ηελ παξνπζίαζε ηεο ζειίδαο. Αλ θαη νη πεξηζζόηεξεο ηδηόηεηεο έρνπλ ηηκέο, νξηζκέλεο επεξεάδνπλ ην ζηνηρείν απιά θαη κόλν κε ηελ παξνπζία ηνπο ζηελ εηηθέηα έλαξμεο (όπσο ην ραξαθηεξηζηηθό ismap γηα ην ζηνηρείν img). Αλ θαη νη θάπνηεο ηδηόηεηεο έρνπλ απνηέιεζκα όηαλ εκθαλίδνληαη ζε ζπγθεθξηκέλα ζηνηρεία (πρ ε ηδηόηεηα src ζην ζηνηρείν table δελ πξνζθέξεη θάηη) απηέο πνπ πεξηγξάθνληαη παξαθάησ είλαη θαζνιηθέο γηα όια ηα ζηνηρεία ηεο HTML. Ζ ηδηόηεηα id παξέρεη ζε έλα ζηνηρείν έλα κνλαδηθό αλαγλσξηζηηθό όλνκα. Απηό κπνξεί λα ρξεζηκνπνηεζεί γηα εληνπηζκό από ηελ ηερλνινγία CSS, από ηα πξνγξάκκαηα πεξηήγεζεο ηζηνζειίδσλ, ή από scripts γηα λα αιιάμεη ην πεξηερόκελν ή ε παξνπζίαζε ηνπ ζηνηρείνπ. Όηαλ 18

19 επηζπλάπηεηαη ζην URL ηεο ζειίδαο, ε δηεύζπλζε URL ζηνρεύεη άκεζα ζην ζπγθεθξηκέλν ζηνηρείν κέζα ζην έγγξαθν πρ. # Attributes Ζ ηδηόηεηα class παξέρεη έλαλ ηξόπν νκαδνπνίεζεο παξόκνησλ ζηνηρείσλ ζε θαηεγνξίεο. Απηό κπνξεί λα ρξεζηκνπνηεζεί γηα ιόγνπο ζεκαζηνινγηθνύο ή παξνπζίαζεο. εκαζηνινγηθά, γηα παξάδεηγκα, νη θαηεγνξίεο κπνξνύλ λα ρξεζηκνπνηεζνύλ ζε δηαδηθαζίεο γξήγνξεο αλαδήηεζεο. Παξνπζηαζηηθά, γηα παξάδεηγκα, έλα έγγξαθν HTML ζα κπνξνύζε λα ρξεζηκνπνηήζεη ηελ θαηεγνξία κε νλνκαζία = "ελδείμεηο" γηα λα δείμεη όηη όια ηα ζηνηρεία απηήο ηεο θαηεγνξίαο είλαη ππνδεέζηεξα ηνπ θπξίσο θεηκέλνπ ηνπ εγγξάθνπ. Σέηνηα ζηνηρεία ζα κπνξνύζαλ λα ζπγθεληξσζνύλ θαη λα παξνπζηάδνληαη σο ππνζεκεηώζεηο ζε κηα ζειίδα, αληί λα εκθαληζηνύλ ζηνλ ρώξν όπνπ εθηειείηαη ν πξσηνγελήο θώδηθαο HTML. Έλαο ζπγγξαθέαο κπνξεί λα ρξεζηκνπνηήζεη ηελ ηδηόηεηα style γηα λα κνξθνπνηήζεη έλα ζπγθεθξηκέλν ζηνηρείν. Θεσξείηαη σζηόζν θαιύηεξε πξαθηηθή ε ρξήζε ησλ ηδηνηήησλ id ή class γηα λα επηιεγεί έλα ή πεξηζζόηεξα ζηνηρεία από ηελ ηερλνινγία CSS γηα λα απνδνζνύλ ζπγθεθξηκέλα ραξαθηεξηζηηθά, αλ θαη κεξηθέο θνξέο απηό κπνξεί λα είλαη ηδηαίηεξα πνιύπινθν γηα κηα απιή θαη ζπγθεθξηκέλε εθαξκνγή ηδηόηεηαο ηύπνπ style. Ζ ηδηόηεηα title ρξεζηκνπνηείηαη γηα ηελ πξνζζήθε ππεμήγεζεο ζρεηηθά κε έλα ζηνηρείν. ηα πεξηζζόηεξα πξνγξάκκαηα πεξηήγεζεο, ε ηδηόηεηα απηή εκθαλίδεηαη σο ππνζεκείσζε. Ζ ηδηόηεηα lang πξνζδηνξίδεη ηελ θπζηθή γιώζζα ηνπ πεξηερνκέλνπ ηνπ ζηνηρείνπ, ε νπνία κπνξεί λα είλαη δηαθνξεηηθή από εθείλε ηνπ ππόινηπνπ ηνπ εγγξάθνπ. Γηα παξάδεηγκα, ζε έλα έγγξαθν ζηελ αγγιηθή γιώζζα <p>oh well, <span lang="fr">c'est la vie</span>, as they say in France.</p> Μεξηθά ζηνηρεία δέρνληαη θαη, ηε ζρεηηθή κε ηε lang, ηδηόηεηα dir πνπ κεηαβάιιεη ηελ θαηεύζπλζε ηνπ θεηκέλνπ. (ρξεζηκνπνηείηαη θπξίσο ζε αξαβηθά, πεξζηθά θαη εβξατθά θείκελα). Οη ηδηόηεηεο ηεο HTML ρσξίδνληαη ζε ππνρξεσηηθέο (πρ href), πξναηξεηηθέο (πρ bgcolor), ζηάληαξ (πρ id, lang) θαη ηδηόηεηεο γεγνλόησλ (onclick, onload). πλήζσο νη ππνρξεσηηθέο θαη πξναηξεηηθέο ηδηόηεηεο ηξνπνπνηνύλ ζπγθεθξηκέλα ζηνηρεία HTML, ελώ νη ζηάληαξ ηδηόηεηεο εθαξκόδνληαη ζηα πεξηζζόηεξα ζηνηρεία HTML, όπσο αλαθέξζεθε πξνεγνπκέλσο. Οη ηδηόηεηεο γεγνλόησλ, πνπ πξνζηέζεθαλ ζηελ HTML 4, δίλνπλ ηε δπλαηόηεηα ζε έλα ζηνηρείν λα πξνθαιέζεη ηελ εθηέιεζε scripts πξνγξακκάησλ θάησ από ζπγθεθξηκέλεο πεξηζηάζεηο. Δπηπιένλ, ε HTML παξέρεη ηα εξγαιεία έηζη ώζηε λα θαηαζηεί δπλαηή ε αιιειεπίδξαζε ηεο ηζηνζειίδαο κε ηνλ ρξήζηε αιιά θαη ε εηζαγσγή δεδνκέλσλ από ηνλ ρξήζηε ζηελ ηζηνζειίδα. Γηα λα γίλεη δπλαηή ε ρξήζε ησλ ζηνηρείσλ ειέγρνπ πξέπεη λα δεκηνπξγεζεί κηα θόξκα κε ηελ εηηθέηα <form>. Δληόο ηεο θόξκαο ν ρξήζηεο κπνξεί λα ηνπνζεηήζεη άιια ζηνηρεία ηα νπνία είηε ζπκβάιινπλ ζηελ παξνπζίαζε ηεο θόξκαο είηε ιεηηνπξγνύλ σο ππνδνρείο δεδνκέλσλ. Σέηνηα 19

20 ζηνηρεία είλαη ηα εμήο: <input> Καζνξίδεη έλα ζηνηρείν ππνδνρέα <textarea> Καζνξίδεη έλα ζηνηρείν ππνδνρέα πνιιώλ γξακκώλ <label> <fieldset> <legend> <select> Καζνξίδεη κηα εηηθέηα γηα έλα ζηνηρείν ππνδνρέα Οκαδνπνηεί ζηνηρεία εληόο ηεο θόξκαο, πρ πνιιά radiobuttons Καζνξίδεη κηα εηηθέηα γηα έλα ζηνηρείν <fieldset> Καζνξίδεη κηα drop-down ιίζηα <optgroup> Καζνξίδεη κηα νκάδα παξόκνησλ ζηνηρείσλ ζε κηα drop-down ιίζηα <option> <button> <datalist> <output> Καζνξίδεη κηα επηινγή ζε κηα drop-down ιίζηα Καζνξίδεη έλα θνπκπί Γηακνξθώλεη πξνθαζνξηζκέλεο επηινγέο γηα ππνδνρείο Καζνξίδεη ην απνηέιεζκα ελόο ππνινγηζκνύ Πέξα ησλ παξαπάλσ ζηνηρείσλ, ην ζηνηρείν <input> δηαζέηεη ηελ ηδηόηεηα type πνπ αλάινγα κε ηελ ηηκή ηεο, ζπκβνιίδεη θαη έλα μερσξηζηό είδνο ππνδνρέα. Έηζη ε ηδηόηεηα type κπνξεί λα πάξεη ηηο παξαθάησ ηηκέο button Καζνξίδεη έλα θνπκπί (ζπλήζσο ελεξγνπνηεί έλα script πξόγξακκα ηεο JavaScript) checkbox color date datetime file Καζνξίδεη έλα πιαίζην επηινγήο Καζνξίδεη κηα επηινγή ρξώκαηνο Καζνξίδεη έλα ζηνηρείν ειέγρνπ εκεξνκελίαο Καζνξίδεη έλα ζηνηρείν ειέγρνπ εκεξνκελίαο θαη ώξαο Καζνξίδεη έλα πεδίν γηα Καζνξίδεη έλα πεδίν επηινγήο αξρείνπ θαη έλα θνπκπί "Browse..." 20

21 hidden image month number password radio reset search submit tel text time url week Καζνξίδεη έλα θξπκκέλν ππνδνρέα Καζνξίδεη κηα εηθόλα σο πιήθηξν επηθύξσζεο Καζνξίδεη έλα ζηνηρείν ειέγρνπ κήλα θαη έηνπο Καζνξίδεη έλα πεδίν εηζαγσγήο αξηζκνύ Καζνξίδεη έλα πεδίν εηζαγσγήο θσδηθνύ (νη ραξαθηήξεο δελ εκθαλίδνληαη) Καζνξίδεη έλα θνπκπί επηινγήο Καζνξίδεη έλα θνπκπί επαλαθνξάο όισλ ησλ πεδίσλ ζε default ηηκέο Καζνξίδεη έλα πεδίν θεηκέλνπ γηα αλαδήηεζε Καζνξίδεη έλα θνπκπί επηθύξσζεο Καζνξίδεη έλα πεδίν γηα εηζαγσγή ηειεθώλνπ Καζνξίδεη έλα πεδίν εηζαγσγήο θεηκέλνπ κε αξρηθό κήθνο 20 ραξαθηήξεο Καζνξίδεη έλα πεδίν εηζαγσγήο ώξαο Καζνξίδεη έλα πεδίν εηζαγσγήο δηεύζπλζεο url Καζνξίδεη έλα ζηνηρείν επηινγήο εβδνκάδαο θαη έηνπο Γηα ηελ απνζηνιή ησλ δεδνκέλσλ ηεο θόξκαο ζηνλ δηαθνκηζηή ε HTML ρξεζηκνπνηεί κηα από ηηο κεζόδνπο GET ή POST ηνπ HTTP πνπ αλαθέξακε παξαπάλσ. πλήζσο πξνηηκάηαη ε δεύηεξε ιόγσ ηεο δπλαηόηεηαο απνζηνιήο κεγαιύηεξεο πνζόηεηαο δεδνκέλσλ, αλεμάξηεηα από ηελ αίηεζε γηα ηελ αλάθηεζε θάπνηα ηζηνζειίδαο. 2.4 Φύλλα ηςλ με Γςναηόηηηα Δπικάλςτηρ (Cascading Style Sheets) Σα Φύιια ηπι κε Γπλαηόηεηα Δπηθάιπςεο (Cascading Style Sheets - CSS) είλαη κηα γιώζζα θύιισλ ζηπι πνπ ρξεζηκνπνηείηαη γηα ηελ πεξηγξαθή ηεο εκθάληζεο θαη ηεο κνξθνπνίεζεο ελόο εγγξάθνπ γξακκέλνπ ζε γιώζζεο παξνπζίαζεο. Αλ θαη ηα CSS ρξεζηκνπνηνύληαη ζπλήζσο γηα ηε κνξθνπνίεζε ηζηνζειίδσλ θαη δηεπαθώλ πνπ ν θώδηθάο ηνπο είλαη γξακκέλνο ζε HTML θαη XHTML, ε γιώζζα κπνξεί λα εθαξκνζηεί ζε νπνηνδήπνηε έγγξαθν XML ηύπνπ, ζπκπεξηιακβαλνκέλσλ ηνπ απινύ XML, SVG θαη XUL. Σα CSS είλαη κηα βαζηθή ηερλνινγία ηνπ δηαδηθηύνπ θαη ζρεδόλ όιεο νη ηζηνζειίδεο ρξεζηκνπνηνύλ θύιια ζηπι CSS γηα ηελ πεξηγξαθή ηεο παξνπζίαζήο ηνπο. Σα CSS ζρεδηάζηεθαλ κε θύξην ζθνπό ην δηαρσξηζκό ηνπ πεξηερνκέλνπ ησλ ηζηνζειίδσλ από ηελ παξνπζίαζή ηνπο, ζπκπεξηιακβαλνκέλσλ θαη ραξαθηεξηζηηθώλ όπσο ε δηάηαμε, ηα 21

22 ρξώκαηα θαη νη γξακκαηνζεηξέο. Απηόο ν δηαρσξηζκόο ζπκβάιιεη ζηε βειηίσζε ηεο πξνζβαζηκόηεηαο ηνπ πεξηερνκέλνπ, παξέρνπλ κεγαιύηεξε επειημία θαη δπλαηόηεηα γηα θαιύηεξν έιεγρν ζηα ραξαθηεξηζηηθά ηεο παξνπζίαζεο, επηηξέπνπλ ζε πνιιαπιέο ζειίδεο λα κνηξάδνληαη ηελ ίδηα κνξθνπνίεζε ή ζηνηρεία απηήο θαη κεηώλνπλ ηελ αλάγθε γηα ηελ επηπιένλ ρξήζε ζηνηρείσλ κε κνλαδηθό ζθνπό ηε βέιηηζηε παξνπζίαζε (πρ <table> θαη <ul>). Ζ ρξήζε CSS κπνξεί επίζεο λα επηηξέςεη ζηελ ίδηα ηζηνζειίδα λα παξνπζηάδεηαη κε δηαθνξεηηθέο κνξθνπνηήζεηο γηα δηαθνξεηηθέο πεξηζηάζεηο, όπσο εκθάληζε επί ηεο νζόλεο, έληππε κνξθή, κε ηε θσλή (όηαλ δηαβάδεηαη από έλα πξόγξακκα πεξηήγεζεο πνπ βαζίδεηαη ζηελ νκηιία) θαη ζηε γξαθή Braille, βαζηζκέλε ζε ζπζθεπέο αθήο. Μπνξεί επίζεο λα δώζεη ηε δπλαηόηεηα ζηελ ηζηνζειίδα λα εκθαληζηεί κε δηαθνξεηηθό ηξόπν αλάινγα κε ην κέγεζνο ηεο νζόλεο ή ηεο ζπζθεπήο ζηελ νπνία πξνβάιιεηαη ην αληηθείκελν απηό. Πην ζπγθεθξηκέλα, ελώ ν ζπληάθηεο ελόο εγγξάθνπ ζπλήζσο ην ζπλδέεη κε έλα ζπγθεθξηκέλν αξρείν CSS, νη αλαγλώζηεο κπνξνύλ λα ρξεζηκνπνηήζνπλ έλα δηαθνξεηηθό θύιιν ζηπι γηα ηνλ δηθό ηνπο ππνινγηζηή θαη λα αληηθαηαζηήζνπλ απηό πνπ έρεη θαζνξίζεη ν ζπγγξαθέαο. ε δηαθνξεηηθή πεξίπησζε ρξεζηκνπνηείηαη ην πξνεπηιεγκέλν ζηπι ηνπ πξνγξάκκαηνο πεξηήγεζεο ύνηαξη Σα CSS έρνπλ κηα απιή ζύληαμε θαη ρξεζηκνπνηνύλ κηα ζεηξά από ιέμεηο-θιεηδηά γηα λα θαζνξίζεηε ηα νλόκαηα ησλ δηαθόξσλ ηδηνηήησλ κνξθνπνίεζεο. Έλα θύιιν ζηπι απνηειείηαη από κηα ιίζηα κε θαλόλεο θαη θάζε θαλόλαο ή ζύλνιν θαλόλσλ απνηειείηαη από έλαλ ή πεξηζζόηεξνπο επηινγείο θαη κηα δήισζε κνξθνπνίεζεο. Δπιλογείρ (Selectors) Οη επηινγείο ρξεζηκνπνηνύληαη γηα λα δειώζνπλ ζε πνην ηκήκα ηεο HTML εθαξκόδεηαη ε ζπγθεθξηκέλε δήισζε. Οη επηινγείο κπνξνύλ λα είλαη: Όια ηα ζηνηρεία κηαο ζπγθεθξηκέλε θαηεγνξίαο, πρ. ηα ζηνηρεία παξαγξάθνπ <p> Όια ηα ζηνηρεία πνπ έρνπλ κηα ζπγθεθξηκέλε ηηκή ζηελ ηδηόηεηα class Έλα ζηνηρείν κε ζπγθεθξηκέλν id ηνηρεία πνπ εκπεξηέρνληαη ζε άιια ζηνηρεία ή ζπλδένληαη καδί ηνπο κε έλα ζπγθεγθξηκέλν ηξόπν (πρ ηα ζηνηρεία li ελόο ζηνηρείνπ ιίζηαο ul) Φεςδοκλάζειρ (Pseudo-classes ) και Φεςδο-ζηοισεία (pseudo-elements) 22

23 Οη ςεπδν-θιάζεηο ρξεζηκνπνηνύληαη γηα λα επηηξέπνπλ ηε κνξθνπνίεζε ζε πεξηπηώζεηο εθηόο ηνπ αξρηθνύ επηινγέα. Έλα ζπρλά ρξεζηκνπνηνύκελν παξάδεηγκα κηαο ςεπδν-θιάζεο είλαη ην :hover, ην νπνίν πξνζδηνξίδεη έλα ζηνηρείν ιίζηαο κόλν όηαλ ν ρξήζηεο κεηαθέξεη ηνλ δείθηε ηνπ πνληηθηνύ πάλσ ζε απηό. Μηα ςεπδν-θιάζε ζπλδπάδεηαη κε όιεο ηηο θαηεγνξίεο επηινγέσλ. Δλώ κηα ςεπδν-θιάζε πξνζδηνξίδεη ζηνηρεία βάζεη κηαο θαηεγνξίαο, αληίζηνηρα έλα ςεπδν-ζηνηρείν πξνζδηνξίδεη έλα ζπγθεθξηκέλν ζηνηρείν (πρ :first-line ή :first-letter). Οη επηινγείο κπνξνύλ επίζεο κπνξνύλ λα ζπλδπαζηνύλ κε πνιινύο ηξόπνπο, δεκηνπξγώληαο κηα ιίζηα πνπ ζα θαζνξίδεη ηα πξνο επηινγή. Ζ ζεηξά ησλ επηινγέσλ ζε απηή ηε ιίζηα σζηόζν είλαη ζεκαληηθή. Γηα παξάδεηγκα, ε δηαηύπσζε div MyClass {color:red;} αλαθέξεηαη ζε όια ηα ζηνηρεία κε ηδηόηεηα class = MyClass πνπ είλαη ηνπνζεηεκέλα εληόο ζηνηρείσλ div, ελώ αληίζεηα ε MyClass div {color:red;} αλαθέξεηαη ζε όια ηα div ζηνηρεία πνπ βξίζθνληαη ηνπνζεηεκέλα εληόο ζηνηρείσλ κε ηδηόηεηα class = MyClass. Γήλυζη μοπθοποίηζηρ Σν ηκήκα ηεο δήισζεο κνξθνπνίεζεο απνηειείηαη από κηα ιίζηα εληνιώλ πνπ εκθαλίδνληαη ζε αγθύιεο. Κάζε εληνιή απνηειείηαη από κηα ηδηόηεηα, ην ζύκβνιν (:), θαη κηα ηηκή ηεο ηδηόηεηαο. Δάλ ππάξρνπλ πνιιέο εληνιέο ζε κηα δήισζε ηόηε δηαρσξίδνληαη κε ην ζύκβνιν (;). Οη ηδηόηεηεο νξίδνληαη από ην πξόηππν CSS. Κάζε ηδηόηεηα έρεη έλα ζύλνιν δπλαηώλ ηηκώλ. Οξηζκέλεο ηδηόηεηεο κπνξνύλ λα επεξεάζνπλ νπνηνδήπνηε ζηνηρείν, θαη άιιεο εθαξκόδνληαη κόλν κόλν ζε ζπγθεθξηκέλεο νκάδεο ζηνηρείσλ. Οη ηηκέο κπνξεί λα είλαη ιέμεηο-θιεηδηά, όπσο "center" ή "inherit," ή αξηζκεηηθέο ηηκέο, απόιπηεο, όπσο 200px ή πνζνζηά, όπσο 80%. Οη ηηκέο πνπ αθνξνύλ ηελ ηδηόηεηα ηνπ ρξώκαηνο κπνξνύλ λα πξνζδηνξίδνληαη κε ιέμεηο-θιεηδηά (π.ρ. red ), ηηκέο ζην δεθαεμαδηθό ζύζηεκα (π.ρ. # FF0000, επίζεο ζε ζπληνκνγξαθία # F00), ηηκέο ηεο κνξθήο RGB ζε θιίκαθα 0 έσο 255 (π.ρ. rgb (255, 0, 0)), ηηκέο ζε κνξθή RGBA πνπ θαζνξίδνπλ ρξώκα θαη αδηαθάλεηα (π.ρ. RGBA (255, 0, 0, 0,8)), ηηκέο ηεο κνξθήο HSL (π.ρ. HSL (000, 100%, 50%)), ή ηεο κνξθήο HSLA (πρ. (000, 100%, 50%, 80% )) Υπήζη Πξηλ ηελ θαζηέξσζε ησλ CSS, ζρεδόλ όια ηα ραξαθηεξηζηηθά παξνπζίαζεο ησλ εγγξάθσλ HTML πεξηέρνληαλ εληόο ησλ εηηθεηώλ ησλ HTML ζηνηρείσλ (ρξώκα γξακκαηνζεηξάο, ζηπι θόληνπ, επζπγξακκίζεηο ζηνηρείσλ, πάρνο πεξηγξακκάησλ, δηαζηάζεηο) κε απνηέιεζκα ηε ζπρλή επαλάιεςή ηνπο. Ζ ρξήζε ησλ CSS επέηξεςε λα κεηαθεξζεί κεγάιν κέξνο απηήο ηεο πιεξνθνξίαο 23

24 εθηόο ηνπ θπξίσο θώδηθα ηεο HTML. πλνιηθά, κε θξηηήξην ηνλ ηξόπν εηζαγσγήο ησλ πιεξνθνξηώλ ησλ θύιισλ ζηπι ζηελ HTML, ηα CSS ρσξίδνληαη ζε ηξεηο θαηεγνξίεο Δζωηεπικά (inline) CSS: ε απηή ηελ θαηεγνξία θάζε πιεξνθνξία κνξθνπνίεζεο πεξηέρεηαη εληόο ηεο εηηθέηαο ηνπ ζηνηρείνπ κέζσ ηεο ηδηόηεηαο style. Πξνζθέξεηαη όηαλ ν ρξήζηεο ζέιεη λα θάλεη κόλν ιίγεο ηξνπνπνηήζεηο ζε θάπνην ζηνηρείν θαη ε δεκηνπξγία ελόο μερσξηζηνύ CSS ζεσξείηαη πιενλαζκόο. Με απηή ηε κέζνδν ράλεηαη ην πιενλέθηεκα ηνπ ζπλδπαζκνύ επηινγέσλ (ην θύιιν ζηπι αλαθέξεηαη απνθιεηζηηθά θαη κόλν ζην ζηνηρείν ηεο εηηθέηαο ηνπ νπνίνπ πεξηθιείεηαη), ηεο απόδνζεο ηνπ ραξαθηεξηζηηθνύ ζε πνιιά ζηνηρεία, θαη επαλέξρεηαη ην δήηεκα ηεο ζπρλήο επαλάιεςεο. Ωζηόζν αθόκα θαη έηζη πξνηηκάηαη από ηελ πξν-css κέζνδν ησλ θιαζηθώλ ηδηνηήησλ πρ <h1><font color="red"> Chapter 1. </font></h1> αληί γηα <h1 style="color:red"> Chapter 1. </h1> Δνζωμαηωμένα (embedded) CSS: ε απηή ηελ θαηεγνξία ε πιεξνθνξία κνξθνπνίεζεο δειώλεηαη εθηόο ηνπ θπξίσο θώδηθα <body> ηεο HTML, εληόο όκσο ηνπ ίδηνπ αξρείνπ html κε ηε μερσξηζηή εηηθέηα style εληόο ηεο θεθαιίδαο <head>. Γηαηεξεί όια ηα πιενλεθηήκαηα ηεο ηερλνινγίαο CSS γηα εθείλν ην αξρείν HTML, ράλεηαη όκσο ε δπλαηόηεηα αλάζεζεο ηεο κνξθνπνίεζεο ζε πνιιαπιά αξρεία. Πρ <head> <style type="text/css"> p { color: #00f; } </style> </head> <body> Δξωηεπικά (external) CSS: ε απηή ηελ θαηεγνξία νη πιεξνθνξίεο κνξθνπνίεζεο απνζεθεύνληαη ζε εμσηεξηθό αξρείν.css. Δίλαη ε βέιηηζηε κέζνδνο θαη παξέρεη ηε κεγαιύηεξε επειημία. Σν κόλν πνπ απαηηείηαη είλαη λα πεξηιακβάλεηαη ζηελ θεθαιίδα ηνπ αξρείνπ HTML έλαο ζύλδεζκνο πξνο ην επηζπκεηό (ή επηζπκεηά) αξρείν CSS. Πρ <link href="path/to/file.css" rel="stylesheet"> Όηαλ παξνπζηάδεηαη ζύγθξνπζε πιεξνθνξηώλ κνξθνπνίεζεο (πρ color:red εληόο ηεο εηηθέηαο θαη color:green ζην αξρείν css γηα ην ίδην ζηνηρείν) πξνηεξαηόηεηα έρνπλ κε ηε ζεηξά νη πιεξνθνξίεο ησλ inline CSS, κεηά ησλ embedded CSS, θαη ηέινο ησλ external CSS. Αληίζηνηρνη θαλόλεο πξνηεξαηνηήησλ ππάξρνπλ θαη ζε ζπγθξνύζεηο πνπ κπνξεί λα πξνθύπηνπλ από ζπλδπαζκνύο επηινγέσλ (εθεί πξνηεξαηόηεηα έρεη ε δήισζε βάζεη id, κεηά βάζεη class θαη ηέινο 24

25 βάζεη θαηεγνξίαο ζηνηρείσλ). 2.5 JavaScript Ζ JavaScript (JS) είλαη κηα interpreted (όπως και οι γλώζζες php, matlab και python, δεν απαιηεί μεηαγλώηηιζη για να εκηελεζηεί) γλώζζα προγραμμαηιζμού γηα ειεθηξνληθνύο ππνινγηζηέο ε νπνία αξρηθά απνηέιεζε κέξνο ησλ web browsers, εθηειώληαο θώδηθα από ηελ πιεπξά ηνπ πειάηερξήζηε (client-based). Σα ηκήκαηα θώδηθα (scripts) ηεο Javascript ζπλέβαιιαλ θαηά πνιύ ζηελ πινπνίεζε εξγαζηώλ όπσο ε δηάδξαζε κε ηνλ ρξήζηε, ε αζύγρξνλε αληαιιαγή δεδνκέλσλ, ν ρεηξηζκόο ηνπ browser θαη ε δπλακηθή δηαρείξηζε ηεο παξνπζίαζεο ηεο ηζηνζειίδαο. Ζ Javascript ζεσξείηαη κηα δπλακηθή, prototype-based γιώζζα πξνγξακκαηηζκνύ (έλα είδνο αληηθεηκελνζηξαθνύο ινγηθήο όπνπ αληί γηα θιάζεηο, αληηθείκελα θαηαζθεπάδνληαη σο πξόηππα από όπνπ παξάγνληαη λέα ζηηγκηόηππα αληηθεηκέλσλ-θιώλνη) θαη δηαρεηξίδεηαη ζπλαξηήζεηο σο αληηθείκελα πξώηεο ηάμεο (first class citizen). Ζ ζύληαμή ηεο είλαη επεξεαζκέλε από απηή ηεο C. Ζ JavaScript αληηγξάθεη πνιιά νλόκαηα θαη νξνινγίεο από ηε Java, αιιά γεληθά νη δύν απηέο γιώζζεο δε ζρεηίδνληαη θαη δελ ζα έπξεπε λα ζπγρένληαη. Οη βαζηθέο αξρέο ζρεδηαζκνύ ηεο πξνέξρνληαη από ηηο γιώζζεο πξνγξακκαηηζκνύ Self θαη Scheme. Γεληθόηεξα είλαη γιώζζα πνπ ππνζηεξίδεη πνιιαπιά ζε πξνγξακκαηηζηηθά ζηπι (multi-paradigm), όπσο ην αληηθεηκελνζηξεθέο (object-oriented), ην ζηπι εληνιώλ θαη δειώζεσλ (imperative) θαη ην ζπλαξηεζηαθό (functional) ζηπι. Ζ JavaScript ρξεζηκνπνηείηαη θαη ζε εθαξκνγέο εθηόο ηζηνζειίδσλ όπσο έγγξαθα PDF, εμεηδηθεπκέλνπο browsers, θαη κηθξέο εθαξκνγέο desktop widgets. ύγξνλα πιαίζηα αλάπηπμεο γηα JavaScript (όπσο ην Node.js) έρνπλ θάλεη ηε JavaScript πην δεκνθηιή γηα ηελ αλάπηπμε εθαξκνγώλ από ηελ πιεπξά ηνπ δηαθνκηζηή (server-side). Από ην 2012 νη browsers εθαξκόδνπλ ηελ justin=time compilation (JIT) ηερληθή ζηελ Javascript (κηα βειηησκέλε παξαιιαγή ηεο interpretetion κεζόδνπ). ύνηαξη Ο θώδηθαο Javascript κηαο ζειίδαο πεξηθιείεηαη από ηηο εηηθέηεο ηεο HTML <script type="text/javascript"> θαη </script>. Γηα παξάδεηγκα: <script type = "text / javascript"> </script> alert('hi!'); 25

26 Αλ ν θώδηθαο πεξηέρεη πεξηζζόηεξεο από κία εληνιέο, απηέο ζα πξέπεη λα δηαρσξηζηνύλ κεηαμύ ηνπο κε ην ραξαθηήξα ';'. Ωζηόζν ν δηαρσξηζκόο ησλ εληνιώλ ζηνπο λεόηεξνπο browsers δελ είλαη απαξαίηεηε. Μηα βαζηθή εληνιή αιιειεπίδξαζεο κε ηνλ ρξήζηε είλαη ε window.prompt, ε νπνία δεηάεη από ην ρξήζηε ηελ απεπζείαο εηζαγσγή δεδνκέλσλ. Γηα παξάδεηγκα <script> var FIRSTvariable = window.prompt("please FILL IN YOUR NAME") alert("your name is " + FIRSTvariable + ".") </script> 2.6 jquery H jquery είλαη κηα cross-platform βηβιηνζήθε ηεο JavaScript πνπ ζρεδηάζηεθε γηα λα απινπνηήζεη ην ζρεδηαζκό scripts ζηελ HTML. Κπθινθόξεζε γηα πξώηε θνξά ηνλ Ηαλνπάξην ηνπ 2006 ζην BarCamp NYC από ηνλ John Resig. ήκεξα αλαπηύζεηαη από κηα νκάδα πξνγξακκαηηζηώλ κε επηθεθαιήο ηνλ Dave Methvin. Υξεζηκνπνηείηαη από ην 80% ησλ πην ζπρλά επηζθεπηόκελσλ ηζηνζειίδσλ θαη είλαη ε πην δεκνθηιήο βηβιηνζήθε ηεο JavaScript ζήκεξα. Ζ jquery είλαη ειεύζεξν ινγηζκηθό αλνηρηνύ θώδηθα θαη ρξεζηκνπνηείηαη γηα λα θαηαζηήζεη επθνιόηεξε ηε δηαρείξηζε εγγξάθσλ, ηνλ ρεηξηζκό γεγνλόησλ, θαη ηελ αλάπηπμε εθαξκνγώλ αζύγρξνλεο κεηαθνξάο δεδνκέλσλ. Δπίζεο παξέρεη δπλαηόηεηεο γηα ηνπο πξνγξακκαηηζηέο λα δεκηνπξγνύλ plug-ins. Ζ jquery εκπεξηέρεηαη ζε έλα αξρείν JavaScript, πνπ πεξηέρεη όιεο ηηο ιεηηνπξγίεο ηεο. Μπνξεί λα ζπκπεξηιεθζεί ζε κηα ηζηνζειίδα κέζσ ηεο ζύλδεζεο κε έλα ηνπηθό αληίγξαθν απνζεθεπκέλν ζηνλ ηνπηθό Ζ/Τ, ή κε έλα από ηα πνιιά αληίγξαθα πνπ δηαηίζεληαη από δεκόζηνπο δηαθνκηζηέο. Δηζάγεηαη κε ηνλ εμήο θώδηθα ζηελ θεθαιίδα ελόο HTML αξρείνπ: <script src="jquery.js"> </ script> (όπνπ jquery.js ην ηνπηθό αξρείν) ή <script src="//code.jquery.com/jquery min.js"> </ script> (όπνπ src είλαη ε δηεύζπλζε ηνπ server) Οη 1.x θαη 2.x εθδόζεηο ηεο jquery ππνζηεξίδνπλ ηηο ηξέρνπζεο εθδόζεηο όισλ ησλ γλσζηώλ browsers (Firefox, Chrome, Opera, Safari), ελώ ζηεξίδνπλ θαη ηνλ Internet Explorer πό ηε έθδνζε 6.0 θαη κεηά (ε έθδνζε 2.x ηεο jquery από ηνλ IE 9.0 θαη κεηά). Ζ jquery παξέρεη επίζεο ηε ζπιινγή εξγαιείσλ jquery UI πνπ αθνξνύλ θπξίσο νπηηθέο εθαξκνγέο (widgets), animations, ρεηξηζκό HTML θαη CSS. 26

27 ύνηαξη Ζ jquery ζπληάζεηαη κε δπν ηξόπνπο: Μέζσ ηνπ ραξαθηήξα $ ζπλνδεπόκελνπ από έλα ζηνηρείν ηεο HTML. Σν ζηνηρείν κπνξεί λα εληνπηζηεί κέζσ επηινγέσλ (id, class, θαηεγνξία). Απηή ε κέζνδνο επηζηξέθεη έλα jquery αληηθείκελν. Πρ $("div.test").add("p.quote").addclass("blue").slidedown("slow"); ή κε ηε ρξήζε ηνπ id $('select#carmakes').append($ '<option/>').attr({value:"vag"}).append("volkswagen")); Μέζσ ηνπ ραξαθηήξα $ ζπλνδεπόκελνπ από ην όλνκα κηαο ιεηηνπξγίαο - ζπλάξηεζεο. Απηέο νη ζπλαξηήζεηο δελ ελεξγνύλ άκεζα ζε θάπνην αληηθείκελν jquery. Πρ. $.each([1,2,3], function() {console.log(this + 1);}); 2.7 Asynchronous JavaScript and XML (AJAX) Ζ ηερλνινγία Ajax είλαη κηα νκάδα αιιειέλδεησλ ηερληθώλ ππνζηήξημεο δηαδηθηπαθώλ εθαξκνγώλ πνπ πινπνηνύληαη ζηνλ ππνινγηζηή ηνπ πειάηε-ρξήζηε γηα ηε δηεπθόιπλζε αζύγρξνλεο αληαιιαγήο δεδνκέλσλ κεηαμύ δηαθνκηζηή-ρξεζηώλ. Ζ ηερληθή Ajax κπνξεί λα ζηέιλεη θαη λα αλαθηά από έλα δηαθνκηζηή γηα ινγαξηαζκό κηαο εθαξκνγήο ζην background, ρσξίο λα παξεκβαίλεη ζηελ παξνπζίαζε ηεο ηζηνζειίδαο ή λα εκπιέθεηαη ζηε ιεηηνπξγία ηεο. Γηα ην ρεηξηζκό ησλ δεδνκέλσλ ρξεζηκνπνηείηαη ην αληηθείκελν XMLHttpRequest, ην νπνίν είλαη έλα API γηα απνζηνιή HTTP θαη HTTPS αηηήζεσλ θαη γηα ηε ιήςε ηεο αληαπόθξηζεο ηνπ δηαθνκηζηή. Παξά ην όλνκα ηνπ αληηθεηκέλνπ, δελ απαηηείηαη πιένλ ηα δεδνκέλα λα κεηαθέξνληαη ζε κνξθή XML αξρείσλ. Αληίζεηα, πην δηαδεδνκέλε θαη ζπρλά ρξεζηκνπνηνύκελε είλαη πιένλ ε κνξθνπνίεζε JSON (ιόγσ απηήο ηεο θαηλνηνκίαο πιένλ έρεη θαζηεξσζεί θαη ε νλνκαζία AJAJ - Asynchronous JavaScript and JSON). Αθξηβώο επεηδή ε Ajax δελ είλαη κηα εληαία ηερλνινγία, αιιά νκάδα ηερλνινγηώλ, δελ πινπνηείηαη ζηνλ θώδηθα ηεο HTML θαη ηεο Javascript κε έλα κνλαδηθό ηξόπν. Πην ζπγθεθξηκέλα, θάζε ρεηξηζκόο από πιεπξάο ρξήζηε κηαο κεζόδνπ ηνπ HTTP (πρ GET ή POST) κέζσ ησλ ζπλαξηήζεσλ ηεο Javasript θαη ηνπ αληηθεηκέλνπ XMLHttpRequest κπνξεί λα ζεσξεζεί πινπνίεζε ηύπνπ AJAX. Γηα παξάδεηγκα, ζηνλ παξαθάησ θώδηθα πινπνηείηαη ε κέζνδνο GET γηα αλάθηεζε δεδνκέλσλ κέζσ ηεο κεζόδνπ responsetext ελόο αληηθεηκέλνπ XMLHttpRequest κε νλνκαζία xhr: // This is the client-side script 27

28 // Initialize the Ajax request var xhr = new XMLHttpRequest(); xhr.open('get', 'send-ajax-data.php'); // Track the state changes of the request xhr.onreadystatechange = function(){ // Ready state 4 means the request is done if(xhr.readystate === 4){ // 200 is a successful return if(xhr.status === 200){ alert(xhr.responsetext); // 'This is the returned text.' }else{ alert('error: '+xhr.status); // An error occurred during the request } } } // Send the request to send-ajax-data.php xhr.send(null); Ζ θαζηέξσζε ηεο βηβιηνζήθεο jquery απινπνίεζε θαηά πνιύ ηε δηαδηθαζία AJAX. Ο παξαθάησ θώδηθαο πεηπραίλεη αθξηβώο ην ίδην απνηέιεζκα κε πξνεγνπκέλσο κε ηελ έηνηκε ζπλάξηεζε get ηεο jquery. $.get('send-ajax-data.php', function(data) { alert(data); }); Ζ ηερλνινγία AJAX πξνζέθεξε ηόζα πιενλεθηήκαηα ζηε δηαρείξηζε ηεο αληαιιαγήο δεδνκέλσλ πνπ ζηα πιαίζηα ηεο jquery αλαπηύρζεθε έλα ζύλνιν ζπλαξηήζεσλ-κεζόδσλ πνπ ζρεηίδνληαη κε απηή. Παξαθάησ παξαηίζνληαη νη πην βαζηθέο: $.ajax() Δθηειεί κηα αίηεζε AJAX $.ajaxsetup() $.get() $.getjson() $.getscript() $.post() ajaxcomplete() ajaxerror() Θέηεη ηηο default ηηκέο γηα κειινληηθέο αηηήζεηο AJAX Αλαθηά δεδνκέλα από δηαθνκηζηή κε ηε κέζνδν HTTP GET Αλαθηά δεδνκέλα ζε κνξθή JSON κε ηε κέζνδν HTTP GET Αλαθηά θαη εθηειεί έλα script κε ηε κέζνδν HTTP GET Αλαθηά δεδνκέλα από δηαθνκηζηή κε ηε κέζνδν HTTP POST Οξίδεη ζπλάξηεζε πξνο εθηέιεζε όηαλ νινθιεξσζεί ε αίηεζε AJAX Οξίδεη ζπλάξηεζε πξνο εθηέιεζε όηαλ νινθιεξσζεί ε αίηεζε κε ιάζνο 28

29 ajaxsend() ajaxstart() ajaxstop() ajaxsuccess() load() Οξίδεη ζπλάξηεζε πξνο εθηέιεζε πξηλ απνζηαιεί ε αίηεζε Οξίδεη ζπλάξηεζε πξνο εθηέιεζε όηαλ απνζηαιή ε αίηεζε Οξίδεη ζπλάξηεζε πξνο εθηέιεζε όηαλ νινθιεξσζεί ε απνζηνιή όισλ ηλσ αηηήζεσλ Οξίδεη ζπλάξηεζε πξνο εθηέιεζε όηαλ νινθιεξσζεί ε δηαδηθαζία επηηπρώο Αλαθηά δεδνκέλα από ηνλ δηαθνκηζηή θαη ηα επηζηξέθεη ζε έλα ζηνηρείν ηεο HTML Αμίδεη λα ζεκεησζεί όηη ε επηινγή ώζηε ε κνξθνπνίεζε ησλ δεδνκέλσλ πξνο αλάθηεζε λα είλαη ε JSON κπνξεί λα γίλεη όρη κόλν κέζσ ηεο getjson() αιιά θαη κέζσ παξακέηξνπ ζηηο ζπλαξηήζεηο $.get() θαη $.ajax(). 3 Σεσνολογίερ από ηην πλεςπά ηος διακομιζηή (server-based) 3.1 Γιακομιζηέρ Γιαδικηύος (Web Servers) Ζ πξσηαξρηθή ιεηηνπξγία ησλ Web Servers είλαη λα απνζεθεύνπλ, λα επεμεξγάδνληαη θαη λα παξνπζηάδνπλ ηζηνζειίδεο γηα ηνπο πειάηεο. Δλώ ζπλήζσο παξέρνπλ δεδνκέλα, ηαπηόρξνλα ππνζηεξίδνπλ θαη ηε δηαδηθαζία ιήςεο δεδνκέλσλ από ηνπο πειάηεο-ρξήζηεο. Οη πεξηζζόηεξνη δηαθνκηζηέο ππνζηεξίδνπλ ην server-side scripting, (ηε δεκηνπξγία δειαδή ηκεκάησλ θώδηθα πνπ εθηειείηαη από ηνλ δηαθνκηζηή) κέζσ ASP, PHP, ή άιιεο γιώζζεο πξνγξακκαηηζκνύ. Απηό ην ραξαθηεξηζηηθό παξέρεη ηε δπλαηόηεηα ε ζπκπεξηθνξά ηνπ web server λα κπνξεί κεηαβάιιεηαη από θώδηθα πνπ απνζεθεύεηαη ζε μερσξηζηά αξρεία, ελώ ην βαζηθό ινγηζκηθό ηνπ δηαθνκηζηή παξακέλεη ακεηάβιεην. πλήζσο, απηή ε ιεηηνπξγία ρξεζηκνπνηείηαη γηα ηε δεκηνπξγία δπλακηθώλ HTML ηζηνζειίδσλ. Οη Web Servers δελ ρξεζηκνπνηνύληαη πάληνηε ζηα πιαίζηα ηνπ World Wide Web. Μπνξνύλ επίζεο λα εληνπηζηνύλ ζε ζπζθεπέο όπσο εθηππσηέο, routers, θάκεξεο θαη λα εμππεξεηνύλ κόλν έλα ηνπηθό δίθηπν. Παξαθάησ αλαθέξνληαη νη πην γλσζηνί web servers παγθνζκίσο θαη ην πνζνζηό ρξεζηώλ πνπ αλαινγεί ζηνλ θαζέλα ην δηάζηεκα Απξηιίνπ- Ματνπ

30 Ολνκαζία Δηαηξία Αξηζκόο ρξεζηώλ Απξίιεο 2014 Πνζνζη ό Αξηζκόο ρξεζηώλ Μάεο 2014 Πνζνζη ό Μεηαβν ιή Apache Apache 361,853, % 366,262, % -0.18% IIS Microsoft 316,843, % 325,854, % +0.37% nginx NGINX, Inc. 146,204, % 142,426, % -0.64% GWS Google 20,983, % 20,685, % -0.07% 3.2 Server-side scripting Με ηνλ όξν server-side scripting νξίδνπκε ηα πξνγξάκκαηα ή ηκήκαηα θώδηθα (scripts) πνπ εθηεινύληαη ζε έλαλ web server θαη ρξεζηκνπνηνύληαη γηα ηε δεκηνπξγία ηνπ πεξηερνκέλνπ ζε δηάθνξεο ηζηνζειίδεο, ηε δηαρείξεζε ησλ ρξεζηώλ, θαζώο θαη ηνλ έιεγρν ηεο ξνήο εθηέιεζεο ησλ εξγαζηώλ. Οη ιεηηνπξγίεο απηέο κπνξνύλ λα επεξεάδνληαη από παξάγνληεο όπσο ηα δεδνκέλα πνπ απνζηέιινληαη από κηα θόξκα κηαο HTML ζειίδαο, νη παξάκεηξνη κηαο URL δηεύζπλζεο, ν ηύπνο ηνπ browser πνπ ρξεζηκνπνηείηαη, ε δηάξθεηα ηνπ ρξόλνπ, ηα δεδνκέλα κηαο βάζεο ή ε θαηάζηαζε ηνπ ίδηνπ ηνπ server. Σα scripts ζπρλά δεκηνπξγνύληαη κε ηε βνήζεηα server-side γισζζώλ πξνγξακκαηηζκνύ, όπσο ASP, ColdFusion, Perl, PHP, Ruby, WebDNA θαη άιιεο, κε ηηο ASP θαη PHP λα είλαη πιένλ νη πην δηαδεδνκέλεο. Απηέο νη server-side γιώζζεο ρξεζηκνπνηνύλ θπξίσο ην Common Gateway Interface (CGI) γηα ηελ παξαγσγή δπλακηθώλ ηζηνζειίδσλ. Σν CGI είλαη νπζηαζηηθά κηα δηεπαθή επηθνηλσλίαο ηνπ δηαθνκηζηή κε ηα scripts, γη' απηό θαη ηα πξνγξάκκαηα ιέγνληαη θαη CGI scripts ή απιά CGIs. Γύν αμηνζεκείσηεο εμαηξέζεηο είλαη ηα πεξηβάιινληα ASP.NET θαη JSP, πνπ επαλαρξεζηκνπνηνύλ ζηνηρεία ηνπ CGI ζηα APIs ηνπο, αιιά παξαδίδνπλ όια ηα αηηήκαηα πνπ δέρνληαη από ρξήζηεο ζε κηα δηθή ηνπο εηθνληθή κεραλή. Σα server-side scripts, αλ θαη εθηεινύληαη ζηελ πιεπξά ηνπ δηαθνκηζηή, σο θώδηθαο πεξηιακβάλνληαη, όπσο θαη ηα client-side scripts ηεο Javacript, είηε ζε μερσξηζηά αξρεία ή εκβόιηκα ζε αξρεία HTML κέζα ζηηο αληίζηνηρεο εηηθέηεο. Οη επεθηάζεηο ησλ αξρείσλ (πρ.asp) ή ηα νλόκαηα ησλ εηηθεηώλ εμαξηώληαη από ηε γιώζζα πνπ ρξεζηκνπνηείηαη. Όηαλ ζε έλα αξρείν 30

31 html εηζάγνπκε ηνλ θώδηθα θάπνηνπ script, αιιάδεη θαη ε επέθηαζε νλόκαηνο κε ηελ νπνία απνζεθεύεηαη ην αξρείν (πρ από.htm ζε.php). πλεπώο, από πιεπξάο πξνγξακκαηηζηή, ν θώδηθαο ησλ server-side θαη client-side scripts κπνξεί λα εκπεξηέρεηαη ζε θνηλά αξρεία ASP (Active Server Pages) H ASP, επίζεο γλσζηή σο Classic ASP ή ASP Classic, ήηαλ ε πξώηε κεραλή δεκηνπξγίαο server-side scripts ηεο Microsoft γηα ηελ παξαγσγή δπλακηθώλ ηζηνζειίδσλ. Αξρηθά θπθινθόξεζε σο έλα add-on γηα ηνλ βαζηθό δηαθνκηζηή ηεο εηαηξίαο Internet Information Services (IIS) κέζσ ησλ Windows NT 4.0 Option Pack ην 1996, ελώ ζηε ζπλέρεηα ζπκπεξηειήθζε σο έλα free component ηνπ Windows Server (από ηελ αξρηθή έθδνζε ησλ Windows 2000 Server). ήκεξα ην πεξηβάιινλ ASP.NET, πνπ θπθινθόξεζε γηα πξώηε θνξά ηνλ Ηαλνπάξην ηνπ 2002, έρεη αληηθαηαζηαζεί ηελ ASP, παξέρνληαο κεγαιύηεξε ηαρύηεηα θαη ζηαζεξόηεηα ζηα ASP scripts. Ζ ASP 2.0 παξείρε έμη ελζσκαησκέλα αληηθείκελα: Application, ASPError, Request, Response, Server, θαη Session. πλεδξίαο, γηα παξάδεηγκα, απνηειεί κηα ζπλεδξία πνπ δηαηεξεί ηελ θαηάζηαζε ησλ κεηαβιεηώλ από ζειίδα ζε ζειίδα. Δπίζεο ππήξρε ε δπλαηόηεηα ησλ ASP ηζηνζειίδσλ γηα πξόζβαζε ζηηο ιεηηνπξγίεο έηνηκσλ βηβιηνζεθώλ, όπσο DLLs. Ζ ASP 3.0 δελ δηέθεξε ζεκαληηθά από ηελ ASP 2.0, αιιά πξνζέθεξε θάπνηα επηπιένλ ζηνηρεία, όπσο νη κέζνδνη Server.Transfer, Server.Execute, θαη έλα βειηησκέλν αληηθείκελν ASPError. Ζ ASP 3.0 επέηξεπε επίζεο ηε δπλαηόηεηα buffering σο πξνεπηινγή, θάηη πνπ βειηίσλε ηελ απόδνζε ηνπ server. Οη ηζηνζειίδεο πνπ ρξεζηκνπνηνύλ ASP εκθαλίδνπλ σο επέθηαζε αξρείνπ ην.asp, ελώ ε επέθηαζε aspx ζεκαίλεη πινπνίεζε κέζσ ηνπ ASP.NET (κε βάζε ην NET Framework ηεο Microsoft). Ζ ASP δελ ζεσξείηαη ε ίδηα κηα script γιώζζα πξνγξακκαηηζκνύ, αληίζεηα έλα ζύλνιν από script γιώζζεο κπνξνύλ λα ρξεζηκνπνηεζνύλ ζηα πιαίζηα ηεο ASP. πλήζσο νη πξνγξακκαηηζηέο γξάθνπλ ASP scripts ρξεζηκνπνηώληαο ηε VBScript (script γιώζζα πνπ αλέπηπμε ε Microsoft ζηε ινγηθή ηεο Visual Basic). Άιιεο γλσζηέο επηινγέο είλαη ε JScript θαη ε PerlScript (ζηα βήκαηα ηεο Perl). Έλα βαζηθό κεηνλέθηεκα ηεο ηερλνινγίαο ASP είλαη όηη, σο απζεληηθό πξντόλ ηεο Microsoft, ηξέρεη κόλν ζε Windows. Αληίζηνηρα, ζηελ αξρή ηνπιάρηζηνλ, όιεο νη ηερλνινγίεο πνπ ζπλδένληαη κε ηελ ASP ρξεηαδόηαλ λα είλαη πξντόληα ηεο Microsoft γηα λα ππάξρεη ζπκβαηόηεηα (IIS, VBScript, Jscript, PerlScript). Σα ηειεπηαία ρξόληα σζηόζν μεθίλεζαλ δηάθνξεο πξνζπάζεηεο ώζηε θάπνηεο από ηηο ιεηηνπξγίεο ηνπ Classic ASP λα πινπνηεζνύλ ζε web servers πνπ δελ είλαη ηεο 31

32 Microsoft. Ο Apache::ASP, γηα παξάδεηγκα, ζπλέδεε ηελ Classic ASP ζηνλ Apache Web Server, αιιά δελ κπνξνύζε λα εξκελεύζεη ηε VBScript ή άιιεο γιώζζεο πξνγξακκαηηζκνύ πνπ ππνζηεξίδνληαη από ηελ ASP. Ζ ηερλνινγία Sun Java System ASP (πξώελ ChiliSoft ASP) ήηαλ επίζεο κηα δεκνθηιήο πξνζπάζεηα ηεο Sun γηα δεκηνπξγία ελόο πιήξνπο εμνκνησηή, αιιά δηεθόπε. ύνηαξη Ζ εηζαγσγή ελόο ASP script ζε γιώζζα VBasicScript ζε έλα αξρείν HTML γίλεηαη (όηαλ δελ εκπεξηέρεηαη ζε μερσξηζηό αξρείν), κε ηε ρξήζε ηεο εηηθέηαο <% θαη %>. Γηα παξάδεηγκα ε κέζνδνο Write Now() ηνπ αληηθεηκέλνπ Response ζπληάζζεηαη σο εμήο: <html> <head> <title>the current time</title> </head> <body> The server's current time:<br /> <% Response.Write Now() %> </body> </html> PHP Ζ PHP είλαη ίζσο ε γλσζηόηεξε server-side script γιώζζα θαη αξρηθά ζρεδηάζηεθε γηα ηελ αλάπηπμε δηαδηθηπαθώλ εθαξκνγώλ, σζηόζν κπνξεί λα ρξεζηκνπνηεζεί θαη σο κηα γεληθήο ρξήζεο γιώζζα πξνγξακκαηηζκνύ. Από ηνλ Ηαλνπάξην ηνπ 2013, ε PHP εγθαηαζηάζεθε ζε πεξηζζόηεξεο από 240 εθαηνκκύξηα ηζηνζειίδεο (39% ηνπ ζπλνιηθνύ δείγκαηνο ηεο έξεπλαο) θαη 2,1 εθαηνκκύξηα web servers. Αξρηθά δεκηνπξγήζεθε από ηνλ Rasmus Lerdorf ην 1994, ελώ ζήκεξα αλαπηύζζεηαη πιένλ από κηα εηδηθή νκάδα πξνγξακκαηηζκνύ, The PHP Group. Αξρηθά ε νλνκαζία PHP ζήκαηλε Personal Home Page, ελώ ηώξα πιένλ ζεκαίλεη PHP:. Hypertext Preprocessor. Όπσο θαη κε άιιεο script γιώζζεο, όπσο ε VΒasicScript, ν θώδηθαο ηεο PHP κπνξεί απιώο λα αλακεηρζεί κε ηνλ θώδηθα HTML, ή κπνξεί λα ρξεζηκνπνηεζεί ζε μερσξηζηά αξρεία. ε θάζε πεξίπησζε ην αξρείν πνπ πεξηιακβάλεη ηνλ PHP θώδηθα ρξεηάδεηαη λα απνζεθεύεηαη κε επέθηαζε.php. ε αληίζεζε κε ηελ ASP, ε PHP είλαη ειεύζεξν ινγηζκηθό πνπ δηαηίζεηαη βάζεη ηεο άδεηαο PHP License. Δπίζεο ε PHP είλαη cross-platform θαη κπνξεί λα αλαπηπρζεί ζηνπο πεξηζζόηεξνπο web servers θαη ζρεδόλ ζε όια ηα ιεηηνπξγηθά ζπζηήκαηα θαη πιαθόξκεο. 32

33 ύνηαξη Σα ηκήκαηα θώδηθα ηεο PHP εληνπίδνληαη θαη εθηεινύληαη κόλν όηαλ πεξηθιείνληαη από ηα εηδηθά δηαρσξηζηηθά ηεο PHP, είηε ζπλππάξρνπλ κε ηκήκαηα θώδηθα ηεο HTML είηε βξίζθνληαη ζε μερσξηζηό αξρείν. Σα πην ζπλήζε δηαρσξηζηηθά είλαη νη εηηθέηεο "<? php" θαη "?>", έηζη ώζηε θάζε ηκήκα ηεο PHP λα εκθαλίδεηαη εληόο ησλ παξελζέζεσλ "<?php...?>". Άιια δηαρσξηζηηθά πνπ ζπλήζσο ρξεζηκνπνηνύληαη είλαη νη εηηθέηεο "<script language="php">" θαη "</ script>". Πην ζύληνκεο εηηθέηεο αλνίγκαηνο (<? ή <?=) είλαη επίζεο δηαζέζηκεο, αιιά όπσο θαη νη εηηθέηεο ζην ζηπι ηεο ASP (<% ή <% =), ρξεζηκνπνηνύληαη ιηγόηεξν θαζώο κπνξνύλ λα απελεξγνπνηεζνύλ από ην configuration file ηεο PHP. Γεληθόηεξα ν ζθνπόο ησλ παξαπάλσ είλαη ν δηαρσξηζκόο ηνπ θώδηθα PHP από άιια ηκήκαηα θώδηθα (θπξίσο ηεο HTML). Οηηδήπνηε εθηόο ησλ δηαρσξηζηηθώλ αγλνείηαη θαη αληηκεησπίδεηαη σο θνηλό θείκελν. Βαζικέρ δομέρ και λειηοςπγίερ Κάζε εληνιή ή δήισζε ζηνλ θώδηθα ηεο PHP ηεξκαηίδεηαη κε ειιεληθό εξσηεκαηηθό (";"). Οη ηηκέο αλαηίζεληαη ζηηο κεηαβιεηέο κε ηνλ ηειεζηή "=". Δπίζεο ζηελ PHP πεξηιακβάλνληαη όιεο νη δνκέο ειέγρνπ θαη επαλάιεςεο ηνπ δνκεκέλνπ πξνγξακκαηηζκνύ: if, while, for, foreach, θαη switch. Σν ζώκα εληνιώλ θάζε δνκήο κπνξεί λα πεξηθιείεηαη από άγθηζηξα ("{...}"), αιιά κεξηθέο δνκέο κπνξνύλ επίζεο λα ρξεζηκνπνηήζνπλ ην ζπλδπαζκό ηνπ ηειεζηή (:) κε ηελ εληνιή end γηα λα ην ζπκπεξηιάβνπλ, όπσο γηα παξάδεηγκα if ($ x == 0): echo "0"? endif? Ζ PHP κπνξεί λα εκθαλίζεη θείκελν κε ηε ρξήζε ηεο εληνιήο echo θαη ην όλνκα ηεο κεηαβιεηήο ζπλνδεπόκελνπ από ηνλ ραξαθηήξα "$". ε πνιιέο πεξηπηώζεηο σζηόζν ρξεζηκνπνηείηαη ε εληνιή print αληί ηεο echo. Καη νη δύν εληνιέο είλαη ζρεδόλ παλνκνηόηππεο, κε θύξηα δηαθνξά όηη ε print είλαη πην αξγή επεηδή πξώηα επηζηξέθεη κηα θαηάζηαζε πνπ δείρλεη αλ ε εθηύπσζε ήηαλ επηηπρεκέλε πέξα από ην θείκελν, ελώ ε echo επηζηξέθεη κόλν ην θείκελν. Γηα παξάδεηγκα ν θώδηθαο: <? php echo "Hello World!\n";?> επηζηξέθεη ην αθόινπζν απνηέιεζκα: Hello World! Μεηαβληηέρ και ζσόλια 33

34 Έλα από ηα βαζηθά ραξαθηεξηζηηθά ηεο PHP είλαη ε απεπζείαο δήισζε κεηαβιεηώλ. Οη κεηαβιεηέο ζπλνδεύνληαη πάληα από ηνλ ραξαθηήξα "$" θαη ν ηύπνο ηεο κεηαβιεηήο δελ ρξεηάδεηαη λα πξνζδηνξίδεηαη εθ ησλ πξνηέξσλ. ε αληίζεζε κε ηα νλόκαηα ησλ ζπλαξηήζεσλ θαη ησλ θιάζεσλ, ηα νλόκαηα ησλ κεηαβιεηώλ είλαη case-sensitive. Δπίζεο ε PHP επηηξέπεη ηε δπλαηόηεηα ελζσκάησζεο ηεο ηηκήο κηαο κεηαβιεηήο ζε έλα θείκελν. Ζ PHP έρεη ηξεηο ηύπνπο ζύληαμεο ζρνιίσλ. Οη ραξαθηήξεο /*...*/ νη νπνίνη ρξεζηκνπνηνύληαη γηα ηελ εηζαγσγή νιόθιεξσλ κπινθ ζρνιίσλ, θαη νη ραξαθηήξεο // θαη # νη νπνίνη ρξεζηκνπνηνύληαη γηα ζρόιηα ηεο κηαο γξακκήο. Σύποι δεδομένυν Ζ PHP απνζεθεύεη νιόθιεξνπο αξηζκνύο κε εύξνο ην νπνίν εμαξηάηαη από ην ιεηηνπξγηθό ζύζηεκα ή ηελ πιαηθόξκα όπνπ εθηειείηαη. Σν εύξνο είλαη ζπλήζσο απηό ησλ 32-bit signed αθεξαίσλ αξηζκώλ. Οη αθέξαηνη αξηζκνί κπνξνύλ λα νξηζηνύλ ζην δεθαδηθό (ζεηηθνί ή αξλεηηθνί), νθηαδηθό ή δεθαεμαδηθό ζύζηεκα. Οη πξαγκαηηθνί αξηζκνί απνζεθεύνληαη επίζεο κε εύξνο πνπ εμαξηάηαη από ηελ πιαηθόξκα. Μπνξνύλ λα νξηζηνύλ κε ηε ρξήζε ππνδηαζηνιήο, ή ζε επηζηεκνληθή θαλνληθνπνηεκέλε κνξθή. Δπίζεο ε PHP έρεη έλαλ ηύπν κεηαβιεηήο κε ην όλνκα "boolean", παξόκνην κε ηνλ Boolean ηύπν ησλ Java θαη C++. Όηαλ έλαο άιινο ηύπνο κεηαβιεηήο κεηαηξέπεηαη ζε boolean, νη κε κεδεληθέο κεηαβιεηέο εξκελεύνληαη σο true θαη νη κεδεληθέο σο false, όπσο ζπκβαίλεη θαη ζηε γιώζζα Perl. Ο ηύπνο δεδνκέλσλ null αληηπξνζσπεύεη κηα κεηαβιεηή πνπ δελ έρεη θακία ηηκή. Ζ κόλε ηηκή πνπ κπνξεί λα πάξεη κηα κεηαβιεηή ηύπνπ null είλαη NULL. Οη κεηαβιεηέο ηύπνπ resource αληηπξνζσπεύνπλ αλαθνξέο ζε εμσηεξηθέο πεγέο. Απηέο νη κεηαβιεηέο δεκηνπξγνύληαη από εηδηθέο ζπλαξηήζεηο θαη κπνξνύλ λα δηεθπεξαησζνύλ κόλν από απηέο. Οη κεηαβιεηέο απηέο κπνξνύλ λα πεξηιακβάλνπλ αξρεία, εηθόλεο θαη ζπλδέζεηο κε βάζεηο δεδνκέλσλ. Ζ PHP επίζεο δηαζέηεη πίλαθεο νη νπνίνη κπνξνύλ λα πεξηέρνπλ ζηνηρεία νπνηνπδήπνηε ηύπνπ δεδνκέλσλ ηεο PHP, ζπκπεξηιακβαλνκέλσλ θαη resources, νιόθιεξα αληηθείκελα, αθόκα θαη άιινπο πίλαθεο (γηα παξάδεηγκα έλαο πνιπδηάζηαηνο πίλαθαο ζηελ PHP κπνξεί λα δεκηνπξγεζεί σο πίλαθαο πηλάθσλ). Ζ PHP ζηεξίδεη επίζεο ηνλ ηύπν ηνπ ζπλδεηηθνύ πίλαθα (associative array) όπνπ θάζε ζηνηρείν κπνξεί λα έρεη σο δείθηε κηα κεηαβιεηή πνπ ζα νξίζεη ν ρξήζηεο αληί γηα έλαλ αθέξαην αξηζκό. Απηή ε δπλαηόηεηα ζπκβάιιεη ζηελ ηαρύηεξε αλαδήηεζε ζηνηρείσλ ηνπ πίλαθα θαη ηε κεηαθνξά δεδνκέλσλ από πίλαθεο βάζεσλ δεδνκέλσλ κέζσ SQL αηηεκάησλ. 34

35 ςναπηήζειρ Ζ PHP δηαζέηεη εθαηνληάδεο ελζσκαησκέλεο ζπλαξηήζεηο θαη ρηιηάδεο πεξηζζόηεξεο από εμσηεξηθέο επεθηάζεηο. Οη ζπλαξηήζεηο απηέο κπνξνύζαλ λα αλαθέξνληαη ζηνλ θώδηθα κόλν κε ην όλνκά ηνπο κέρξη ηελ έθδνζε PHP 5.3.0, ελώ από ηελ PHP θαη κεηά απαηηείηαη λα ζπλνδεύνληαη από παξελζέζεηο. Οη ζπλαξηήζεηο πνπ νξίδνληαη από ηνλ ρξήζηε κπνξνύλ λα νξηζηνύλ αλά πάζα ζηηγκή ζηνλ θώδηθα, δίρσο λα ρξεηάδεηαη λα δεκηνπξγνύληαη εθ ησλ πξνηέξσλ, ελώ ζηελ PHP δελ ππάξρεη ε έλλνηα ησλ ηνπηθώλ ζπλαξηήζεσλ. Οη ζπλαξηήζεηο θαινύληαη κε ηε ρξήζε παξελζέζεσλ (), κε εμαίξεζε ηε ζπλάξηεζε ηνπ θαηαζθεπαζηή αληηθεηκέλνπ new, όπνπ νη παξελζέζεηο είλαη πξναηξεηηθέο. Έλα παξάδεηγκα νξηζκνύ ηεο ζπλάξηεζεο είλαη ε αθόινπζε: <? php function hello ($ target = 'World ') { echo "Hello $target\n"? } hello();?> Πξηλ από ηελ έθδνζε 5.3, ε PHP ππνζηήξηδε ηηο αλώλπκεο ζπλαξηήζεηο (anonymous functions ζπλαξηήζεηο δίρσο αλαγλσξηζηηθό όλνκα) κέζσ ηεο ζπλάξηεζεο create_function(). Απηέο σζηόζν δελ ήηαλ πξαγκαηηθά αλώλπκεο ζπλαξηήζεηο, επεηδή νη ζπλαξηήζεηο κπνξνύζαλ λα εληνπίδνληαη κόλν κε ην όλνκά ηνπο ζηελ PHP. Από ηελ έθδνζε 5.3 θαη κεηά, ε PHP ππνζηεξίδεη θαλνληθά ηηο αλώλπκεο ζπλαξηήζεηο. ηελ PHP νη θιήζεηο ζπλαξηήζεσλ κπνξεί λα γίλεη θαη κέζσ κεηαβιεηώλ, όπνπ ε ηηκή κηαο κεηαβιεηήο πεξηέρεη ην όλνκα ηεο ζπλάξηεζεο πξνο θιήζε. Γηα παξάδεηγκα: <?php function hello() { return 'Hello'; } function world() { return "World!"; } $function1 = 'hello'; 35

36 $function2 = 'world'; echo $function1(). ' '. $function2();?> Έλα βαζηθό κεηνλέθηεκα ηεο PHP, όπσο θαη ησλ πεξηζζόηεξσλ interpreted γισζζώλ όπσο ε Python, είλαη όηη δελ ππνζηεξίδεη ηελ νλνκαζία ή ηελ παξάιεηςε παξακέηξσλ ζηηο ζπλαξηήζεηο, επεηδή δελ ζπκπεξηιακβάλνληαη θαζόινπ παξάκεηξνη ζηηο θιήζεηο ζπλαξηήζεσλ. Ωο απνηέιεζκα δελ είλαη εθηθηή ε κέζνδνο function overloading by parameters, όπνπ δπν δηαθνξεηηθέο ζπλαξηήζεηο κε ην ίδην όλνκα μερσξίδνπλ από ηνλ compiler αλάινγα κε ην πιήζνο ησλ νξηζκάησλ ηνπο όηαλ θαινύληαη ή ηελ εθ ησλ πξνηέξσλ αλάζεζε ηηκήο ζε θάπνηα από απηά. Έλαο ηξόπνο επίιπζεο απηνύ ηνπ δεηήκαηνο ηειεπηαία παξνπζηάδεηαη λα είλαη ε κέζνδνο function overloading by return type, όπνπ ε ζπλάξηεζε δηαρεηξίδεηαη δηαθνξεηηθά θάζε πεξίπησζε, αλάινγα κε ηνλ ηύπν ηεο return value θάζε θνξά (ζπλήζσο κε κηα δνκή if εληόο ηεο ζπλάξηεζεο). Ανηικειμενοζηπαθήρ PHP (OOPHP) Οη βαζηθέο ιεηηνπξγίεο αληηθεηκελνζηξαθνύο πξνγξακκαηηζκνύ (Object - Oriented PHP - OOPHP) πξνζηέζεθαλ γηα πξώηε θνξά ζηελ PHP 3, σζηόζν ν ρεηξηζκόο ησλ αληηθεηκέλσλ επαλαζρεδηάζηεθε εμ νινθιήξνπ ζηελ PHP 5, δηεπξύλνληαο ην ζύλνιν ησλ δπλαηνηήησλ θαη απμάλνληαο ηελ απόδνζε ηεο γιώζζαο. ε πξνεγνύκελεο εθδόζεηο ηεο PHP, ηα αληηθείκελα αληηκεησπίδνληαλ σο primitive ηύπνη δεδνκέλσλ. Ζ κέζνδνο απηή είρε σο απνηέιεζκα λα αληηγξάθεηαη όιν ην αληηθείκελν όηαλ κηα κεηαβιεηή κεηαβηβαδόηαλ σο παξάκεηξνο ζε κηα κέζνδν. ηε λέα πξνζέγγηζε, ε αλαθνξά ζηα αληηθείκελα πξαγκαηνπνηείηαη βάζεη δεηθηώλ, όρη βάζεη ηηκήο. ηελ PHP 5 επίζεο εηζήρζεθαλ νη private θαη protected θαηεγνξίεο κεζόδσλ, θαζώο θαη νη αθεξεκέλεο (abstract) κέζνδνη θαη θιάζεηο. Δπίζεο, εηζήρζε έλαο ηππνπνηεκέλνο ηξόπνο δήισζεο θαηαζθεπαζηώλ (constructors) θαη θαηαζηξνθώλ (destructors), παξόκνηνο κε εθείλν άιισλ αληηθεηκελνζηξαθώλ γισζζώλ όπσο ε C++, θαη έλα πξόηππν κνληέιν ρεηξηζκνύ εμαηξέζεσλ (exception handling model). Δπηπιένλ ζηελ PHP 5, πξνζηέζεθε ε δπλαηόηεηα ησλ Γηεπαθώλ (Interfaces) θαη επηηξάπεθε ε δπλαηόηεηα γηα εθαξκνγή πνιιαπιώλ δηεπαθώλ. Μηα αθόκα δπλαηόηεηα ηεο OOPHP είλαη ε ρξήζε ζηαηηθώλ (static) κεζόδσλ θαη θιάζεσλ, σζηόζν ε ιεηηνπξγία ηνπο δελ είλαη αθξηβώο αληίζηνηρε ησλ άιισλ γισζζώλ θαζώο, επεηδή δελ ππάξρεη virtual πίλαθαο ζηε κεραλή ηεο PHP, νη ζηαηηθέο κεηαβιεηέο ζπλδένληαη κε όλνκα αληί γηα αλαθνξά. 36

37 ην παξαθάησ παξάδεηγκα πεξηιακβάλνληαη θάπνηεο δπλαηόηεηεο ηεο OOPHP. Ζ θιάζε foo θιεξνλνκεί ηελ θιάζε bar θαη ε ζπλάξηεζε mystaticfunc δειώλεηαη σο public static πνπ κπνξεί λα θιεζεί κε ηε δήισζε foo::mystaticfunc(); class foo extends bar { function construct() { $doo = "wah dee dee"; } public static function mystaticfunc() { $dee = "dee dee dum"; } } 3.3 SQL H SQL (Structured Query Language) είλαη κηα γιώζζα πξνγξακκαηηζκνύ εηδηθνύ ζθνπνύ ζρεδηαζκέλν γηα ηε δηαρείξηζε ησλ δεδνκέλσλ πνπ είλαη απνζεθεπκέλα ζε κηα βάζε δεδνκέλσλ. Οη βάζεηο δεδνκέλσλ είλαη νληόηεηεο όπνπ είλαη απνζεθεπκέλα ζρεηηθά κεηαμύ ηνπο δεδνκέλα. Απηά ηα δεδνκέλα κε ηε ζεηξά ηνπο είλαη απνζεθεπκέλα ζε πίλαθεο. Οη πίλαθεο απνηεινύληαη από έλαλ αξηζκό εγγξαθώλ (rows) θαη θάζε εγγξαθή ρσξίδεηαη ζε μερσξηζηά είδε πιεξνθνξίαο, πνπ νλνκάδνληαη πεδία (fields). Κάζε πίλαθαο έρεη έλα πξσηεύνλ θιεηδί (primary key) πνπ είλαη έλα πεδίν, ή ζπλδπαζκόο πεδίσλ, ώζηε νη ηηκέο ηνπ/ηνπο λα ραξαθηεξίδνπλ κνλνζήκαληα κηα εγγξαθή (πρ ην ID ελόο ρξήζηε). ρεδηαζκέλε κε βάζε ηε ζρεζηαθή άιγεβξα θαη ηνλ ζρεζηαθό ινγηζκό, ε SQL απνηειείηαη από κηα γιώζζα νξηζκνύ δεδνκέλσλ (Data Definition Language DDL) θαη κηα γιώζζα δηαρείξηζεο δεδνκέλσλ (Data Manipulation Language - DML). Σν πεδίν εθαξκνγήο ηεο πεξηιακβάλεη εηζαγσγή δεδνκέλσλ, δηαηύπσζε αηηεκάησλ-εξσηεκάησλ (queries), ελεκέξσζε θαη δηαγξαθή εγγξαθώλ, δεκηνπξγία θαη ηξνπνπνίεζε κνληέισλ, θαζώο θαη έιεγρν πξόζβαζεο ζε δεδνκέλα. Αλ θαη ε SQL ζπρλά πεξηγξάθεηαη, θαη είλαη ζε κεγάιν βαζκό, σο κηα γιώζζα δειώζεσλ 4εο γεληάο, πεξηιακβάλεη επίζεο θαη ζηνηρεία δηαδηθαζηηθνύ πξνγξακκαηηζκνύ. Ζ SQL έγηλε πξόηππν ηνπ ακεξηθαληθνύ Δζληθνύ Ηλζηηηνύηνπ Πξνηύπσλ (ANSI) ην 1986, θαη ηνπ Γηεζλνύο Οξγαληζκνύ Σππνπνίεζεο (ISO) ην Έθηνηε ην πξόηππν έρεη βειηησζεί αξθεηέο θνξέο κε πξόζζεηα ραξαθηεξηζηηθά. Παξά ηελ ύπαξμε πξνηύπσλ όκσο, ν θώδηθάο ηεο δελ 37

38 είλαη πιήξσο κεηαθέξζηκνο κεηαμύ δηαθνξεηηθώλ ζπζηεκάησλ βάζεσλ δεδνκέλσλ, γεγνλόο πνπ κπνξεί λα πξνθαιέζεη έιιεηςε αλεμαξηεζίαο ηνπ ρξήζηε. Αθόκα νη δηάθνξνη θαηαζθεπαζηέο δελ ηεξνύλ απόιπηα κε ην πξόηππν, γηα παξάδεηγκα, κε ηελ πξνζζήθε επεθηάζεσλ, θαη ην ίδην ην πξόηππν είλαη κεξηθέο θνξέο αζαθέο Γλώζζα Οπιζμού Γεδομένυν (Data Definition Language) Ζ Γιώζζα Οξηζκνύ Γεδνκέλσλ (DDL) πεξηέρεη εθείλεο ηηο εληνιέο νη νπνίεο επηηξέπνπλ ζηνλ ρξήζηε λα δεκηνπξγεί θαη λα δηαγξάθεη βαζηθέο δνκέο, όπσο νιόθιεξεο βάζεηο δεδνκέλσλ ή πίλαθεο. Καηά θύξην ιόγν νη εληνιέο απηέο ρξεζηκνπνηνύληαη από ηνπο δηαρεηξηζηέο ησλ βάζεσλ δεδνκέλσλ. Οη ζεκαληηθόηεξεο εληνιέο DDL ζηελ SQL είλαη νη εμήο : CREATE ALTER DROP TRUNCATE USE Γεκηνπξγία Σξνπνπνίεζε Γηαγξαθή Γηαγξαθή εγγξαθώλ Υξήζε/Δπηινγή Ζ εληνιή CREATE δεκηνπξγεί έλα θαηλνύξην αληηθείκελν, ην νπνίν κπνξεί λα είλαη είηε βάζε δεδνκέλσλ, είηε έλαο πίλαθαο, αλάινγα κε ηελ ιέμε πνπ αθνινπζεί, δειαδή είηε CREATE DATABASE <όλνκα βάζεο δεδνκέλσλ> ή CREATE TABLE <όλνκα πίλαθα>, αληίζηνηρα. Γηα παξάδεηγκα ν παξαθάησ θώδηθαο δεκηνπξγεί έλαλ πίλαθα κε 3 πεδία θαη πξσηεύνλ θιεηδί ην ζπλδπαζκό ηνπ δεύηεξνπ θαη ηξίηνπ πεδίνπ: CREATE TABLE example( field1 INTEGER, field2 VARCHAR(50), field3 DATE NOT NULL, PRIMARY KEY (field1, field2) ); Ζ εληνιή ALTER επηηξέπεη ηελ ηξνπνπνίεζε θάπνηνπ ζηνηρείνπ ελόο πίλαθα (πρ ην όλνκά ηνπ ή ην όλνκα ελόο πεδίνπ), ρσξίο λα ρξεηάδεηαη λα δηαγξαθεί απηόο ν πίλαθαο θαη λα δεκηνπξγεζεί από ηελ αξρή κε ηηο αιιαγέο πνπ επηζπκεί ν ρξήζηεο. Γηα παξάδεηγκα ν παξαθάησ θώδηθαο πξνζζέηεη έλα πεδίν αθόκα ζηνλ παξαπάλσ πίλαθα: 38

39 ALTER TABLE example ADD field4 NUMBER(3) NOT NULL; Ζ πξνζζήθε NOT NULL ζεκαίλεη όηη απηό ην πεδίν δελ κπνξεί λα πάξεη ηελ ηηκή null (πξέπεη πάληα λα έρεη θάπνηα ηηκή). Ζ εληνιή DROP ρξεζηκνπνηείηαη γηα ηελ νιηθή δηαγξαθή κηαο βάζεο δεδνκέλσλ ή ελόο πίλαθα, θαη ρξεζηκνπνηείηαη κε ηελ ίδηα ζύληαμε όπσο ε εληνιή CREATE. Ο παξαθάησ θώδηθαο δηαγξάθεη ηνλ παξαπάλσ πίλαθα. DROP TABLE example; Ζ εληνιή TRUNCATE δηαγξάθεη όια ηα δεδνκέλα από έλαλ πίλαθα κε έλαλ πνιύ γξήγνξν ηξόπν, αιιά όρη ηνλ ίδην ηνλ πίλαθα. Ζ εληνιή απηή δελ έρεη δπλαηόηεηα αλαίξεζεο. Πρ TRUNCATE TABLE example; Σέινο, ε εληνιή USE επηηξέπεη ζηνλ ρξήζηε λα επηιέμεη πνηα βάζε δεδνκέλσλ ζα ρξεζηκνπνηήζεη γηα λα ιεηηνπξγήζεη κε ην ζύζηεκα δηαρείξηζεο βάζεο δεδνκέλσλ (δειαδή ηελ εθαξκνγή). Ζ εληνιή απηή είλαη ρξήζηκε όηαλ ππάξρνπλ πνιιέο βάζεηο δεδνκέλσλ ζην πιεξνθνξηαθό ζύζηεκα, ή όηαλ κόιηο έρεη δεκηνπξγεζεί κηα λέα βάζε θαη ρξεηάδεηαη λα επηιερζεί. Πρ: CREATE DATABASE database; USE DATABASE database; Γλώζζα Υειπιζμού Γεδομένυν (Data Manipulation Language) Βαζηθόο ζηόρνο ηεο Γιώζζαο Υεηξηζκνύ Γεδνκέλσλ (DML) είλαη ε δηαρείξηζε (επηινγή, επεμεξγαζία, δηαγξαθή, πξνζζήθε) ησλ εγγξαθώλ κηαο βάζεο δεδνκέλσλ. Οη ζεκαληηθόηεξεο εληνιέο ηεο DML είλαη νη εμήο: SELECT UPDATE DELETE INSERT Δπηινγή Δλεκέξσζε Γηαγξαθή Δηζαγσγή 39

40 Ζ εληνιή SELECT επηιέγεη εγγξαθέο από έλα πίλαθα. Από ηηο εγγξαθέο πνπ επηιέγνληαη κπνξνύλ λα αλαθηεζνύλ όιεο, ή κόλν έλαο αξηζκόο αλάινγα κε ηα θξηηήξηα πνπ ζα επηιέμεη ν ρξήζηεο. Από ηηο εγγξαθέο πνπ ζα επηζηξαθνύλ κεηά ην εξώηεκα, κπνξνύλ λα επηζηξαθνύλ όια ηα πεδία θάζε εγγξαθήο ή όζα νξίδεη ν ρξήζηεο. Δπίζεο κπνξεί λα επηιεγεί θαη ε ζεηξά κε ηελ νπνία ζα επηζηξαθνύλ νη εγγξαθέο πνπ ηθαλνπνηνύλ ηα θξηηήξηα επηινγήο. Γηα παξάδεηγκα ν παξαθάησ θώδηθαο επηζηξέθεη όζεο εγγξαθέο έρνπλ ηηκή ηνπ πεδίνπ price κεγαιύηεξν ηνπ 100, ηαμηλνκεκέλεο θαηά ην πεδίν title: SELECT * FROM Book WHERE price > ORDER BY title; Ζ εληνιή UPDATE ελεκεξώλεη ηα επηιεγκέλα πεδία θάπνησλ εγγξαθώλ ελόο πίλαθα, κε λέεο ηηκέο πνπ πξνζδηνξίδεη ν ρξήζηεο. Γηα παξάδεηγκα ν παξαθάησ θώδηθαο δίλεη ηελ ηηκή update value ζην πεδίν field1 γηα όζεο εγγξαθέο έρνπλ ηελ ηηκή Ν ζην πεδίν field2: UPDATE example SET field1 = 'updated value' WHERE field2 = 'N'; Ζ εληνιή DELETE δηαγξάθεη κηα ή πεξηζζόηεξεο εγγξαθέο από έλαλ πίλαθα. Πρ: DELETE FROM example WHERE field2 = 'N'; Ζ εληνιή INSERT πξνζζέηεη κηα εγγξαθή ζε έλαλ πίλαθα κε ηηκέο πνπ νξίδεη ν ρξήζηεο γηα θάζε πεδίν. Πρ INSERT INTO example (field1, field2, field3) VALUES ('test', 'N', NULL); 3.4 ύζηημα Γιασείπιζηρ Βάζηρ Γεδομένυν (DBMS) Με ηνλ όξν ύζηεκα Γηαρείξηζεο Βάζεο Γεδνκέλσλ (Database Management system - DBMS) νξίδεηαη ην ινγηζκηθό κέζσ ηνπ νπνίνπ εθηειείηαη ε δεκηνπξγία, ε δηαρείξηζε, ε 40

41 ζπληήξεζε θαη ε ρξήζε κηαο ειεθηξνληθήο βάζεο δεδνκέλσλ. Σν ινγηζκηθό ρξεζηκνπνηεί βαζηθέο κεζόδνπο θαηεγνξηνπνίεζεο, αλάθηεζεο δεδνκέλσλ θαη εθηέιεζεο εξσηεκάησλ ζρεηηθώλ κε απηά. Έλα DBMS νθείιεη λα νξγαλώλεη ηα δεδνκέλα κε ηξόπνπο θηιηθνύο θαη εύρξεζηνπο σο πξνο ηνπο εμσηεξηθνύο ρξήζηεο. ύκθσλα κε έλαλ άιινλ νξηζκό, ην ζύζηεκα δηαρείξηζεο βάζεο δεδνκέλσλ είλαη έλαο δηαρεηξηζηήο αξρείσλ (file manager) πνπ δηαρεηξίδεηαη δεδνκέλα ζε βάζεηο δεδνκέλσλ αληί γηα αξρεία εληόο ζπζηεκάησλ αξρείσλ. Δπίζεο έλα πιήξεο ζύζηεκα δηαρείξηζεο βάζεο δεδνκέλσλ έρεη ηε δπλαηόηεηα λα δεκηνπξγεί επξεηήξηα (indexes) γηα ηα δεδνκέλα ώζηε λα βειηηζηνπνηεί ηηο δηαδηθαζίεο εύξεζεο θαη αλάθηεζεο. Αθόκα νθείιεη λα παξέρεη αθεξαηόηεηα ζηε δηαδηθαζία εηζαγσγήο λέσλ ζηνηρείσλ θαη ζηελ απόδνζε ησλ πιεξνθνξηώλ πνπ παξέρνπλ, αλάινγα κε ηδηαίηεξεο αλάγθεο ηνπ ρξήζηε. Σα DBMS αληηζηνηρνύλ ζηελ ηξίηε βαζκίδα ηεο δνκήο κηαο δηαδηθηπαθήο εθαξκνγήο, απηή ησλ δεδνκέλσλ. ρεκαηηθά, ν ξόινο ελόο DBMS είλαη λα δέρεηαη SQL εξσηήκαηα (queries) γξακκέλα ζε θώδηθα θάπνηαο έθδνζε ηεο SQL κέζσ ηνπ θαηάιιεινπ αληηθεηκέλνπ ή ζπλάξηεζεο ηεο PHP ή ηεο αληίζηνηρεο server-side script γιώζζαο, θαη λα επηζηξέθεη ηηο αληίζηνηρεο εγγξαθέο ή πίλαθεο πνπ αλαδεηά ν ρξήζηεο από ηε βάζε δεδνκέλσλ. σήμα 3.1: Λεηηνπξγία ελόο RDBMS κέζσ SQL αηηεκάησλ (Πεγή: w3resource.com) 41 Αληίζεηα κε ηα ζπζηήκαηα επεμεξγαζίαο δεδνκέλσλ (όπσο είλαη ηα πιεξνθνξηαθά ζπζηήκαηα) ηα όπνηα επεμεξγάδνληαη θαη κεηαβάιινπλ ηα δεδνκέλα ζύκθσλα κε θάπνηνλ ηδηαίηεξν

42 αιγόξηζκν, απνδίδνληαο θάπνην ινγηθό απνηέιεζκα, ην ζύζηεκα δηαρείξηζεο βάζεο δεδνκέλσλ εθηειεί ηνπο ειάρηζηνπο δπλαηνύο καζεκαηηθνύο ππνινγηζκνύο θαζώο ν θύξηνο ζηόρνο ηνπ είλαη ε νξγάλσζε, ε δηαρείξηζε θαη ε απόδνζε δεδνκέλσλ ζε πεξηπηώζεηο αλαδήηεζεο. Όηαλ έλα DBMS βαζίδεηαη ζην ζρεζηαθό κνληέιν δηαρείξηζεο βάζεσλ δεδνκέλσλ πνπ εηζήγαγε ν Edgar F. Codd ζην εξεπλεηηθό εξγαζηήξην ηεο IBM ζην San Jose ην 1969, ηόηε νλνκάδεηαη ρεζηαθό ύζηεκα Γηαρείξηζεο Βάζεο Γεδνκέλσλ (Relational Database Management system RDBMS). Σα πεξηζζόηεξα δεκνθηιή DBMS ρξεζηκνπνηνύληαη ζήκεξα κε βάζε ην ζρεζηαθό κνληέιν βάζεσλ δεδνκέλσλ. Σα RDBMSs, εηδηθά από ηα 1980 θαη έπεηηα έρνπλ γίλεη κηα θπξίαξρε επηινγή γηα ηελ απνζήθεπζε νηθνλνκηθώλ, ινγηζηηθώλ θαη πιηθνηερληθώλ ησλ πιεξνθνξηώλ ζηηο βάζεηο δεδνκέλσλ. Οη ζρεζηαθέο βάζεηο δεδνκέλσλ αληηθαηέζηεζαλ γξήγνξα ηηο παιηόηεξεο ηεξαξρηθέο βάζεηο δεδνκέλσλ επεηδή είλαη πην εύθνιεο ζηελ θαηαλόεζε θαη ηελ ρξήζε. Ωζηόζν, ζήκεξα ε πξσηνθαζεδξία ησλ ζρεζηαθώλ βάζεσλ απεηιείηαη από ηηο βάζεηο αληηθεηκέλσλ, κέζσ ησλ νπνίσλ γίλεηαη ε πξνζπάζεηα ηεο εηζαγσγήο ηεο αληηθεκελνζηξαθνύο ινγηθήο ζηε δηαρείξηζε ησλ βάζεσλ δεδνκέλσλ, θαη ηηο βάζεηο XML πνπ ραξαθηεξίδνληαη από ηελ απνζήθεπζε ησλ δεδνκέλσλ ζε XML κνξθή. ύκθσλα κε έξεπλα ηεο εηαηξίαο Gartner, ην 2008, ηα δεκνθηιέζηεξα RDBMS κε θξηηήξην ην πνζνζηό ησλ βάζεσλ δεδνκέλσλ ησλ ηζηνζειίδσλ παγθνζκίσο ήηαλ ηα εμήο: Oracle Database - 70% Microsoft SQL Server - 68% MySQL (Oracle Corporation) - 50% IBM DB2-39% IBM Informix - 18% SAP Sybase Adaptive Server Enterprise - 15% SAP Sybase IQ - 14% Teradata - 11% ελώ ζύκθσλα κε ηε DB-Engines, ηα δεκνθηιέζηεξα RDBMSείλαη ηα Oracle, MySQL, Microsoft SQL Server, PostgreSQL and IBM DB2. Ωζηόζν, ηα θνξπθαία RDBMS αλνηθηνύ θώδηθα ζεσξνύληαη ηα MySQL, PostgreSQL θαη SQLite Oracle Ζ Oracle Database (πνπ ζπλήζσο αλαθέξνληαη σο Oracle RDBMS ή απιά σο Oracle) είλαη έλα αληηθεηκελν-ζρεζηαθό ζύζηεκα δηαρείξηζεο βάζεσλ δεδνκέλσλ (object-relational database 42

43 management system) πνπ παξάγεηαη θαη δηαηίζεηαη ζην εκπόξην από ηελ Oracle Corporation. Σππηθά ιεηηνπξγεί σο έλα ζύλνιν θαηαλεκεκέλσλ δηεξγαζηώλ νη νπνίεο εθηεινύληαη ηαπηόρξνλα ζην background ηεο εθαξκνγήο θαη πινπνηνύλ ηηο απαξαίηεηεο εξγαζίεο. Τπνζηεξίδεηαη από δηάθνξνπο servers θαη κπνξεί λα εθηειεζηεί ζε ππνινγηζηέο πνπ ρξεζηκνπνηνύλ δηαθνξεηηθά ιεηηνπξγηθά ζπζηήκαηα. Γελ είλαη ινγηζκηθό αλνηθηνύ θώδηθα (open source) θαη γηα απηό πξνηηκάηαη από εηαηξίεο ιόγσ ησλ πσειώλ δπλαηνηήησλ ηνπ, αιιά όρη από απινύο ρξήζηεο πνπ αδπλαηνύλ λα ην απνθηήζνπλ Microsoft SQL Server Ο Microsoft SQL Server είλαη έλα ζρεζηαθό ζύζηεκα δηαρείξηζεο βάζεσλ δεδνκέλσλ πνπ αλαπηύρζεθε από ηε Microsoft. Μέρξη ζήκεξα έρνπλ ζρεδηαζηεί θαη αλαπηπρζεί ηνπιάρηζηνλ 10 δηαθνξεηηθέο εθδόζεηο ηνπ Microsoft SQL Server πνπ ζηνρεύνπλ ζε δηαθνξεηηθά αθξναηήξηα θαη είδε εξγαζηώλ πνπ θπκαίλνληαη από κηθξέο εθαξκνγέο ζε ιίγνπο ππνινγηζηέο κέρξη κεγάιεο εθαξκνγέο Internet κε πνιινύο ηαπηόρξνλνπο ρξήζηεο. Οη βαζηθέο γιώζζεο πινπνίεζεο εξσηεκάησλ (queries) ηνπ MS Server είλαη νη T-SQL θαη ANSI SQL. Δκδόζειρ Ο Μicrosoft SQL Server είλαη δηαζέζηκνο ζε πνιιέο εθδόζεηο, κε δηαθνξεηηθά ραξαθηεξηζηηθά γλσξίζκαηα ε θάζε κία γηα δηαθνξεηηθνύο ρξήζηεο. πλνπηηθά απηέο νη εθδόζεηο είλαη νη εμήο: Microsoft SQL Server 2008 R2 Datacenter Microsoft SQL Server Enterprise Edition Microsoft SQL Server Standard Microsoft SQL Server Web Edition Microsoft SQL Server Business Intelligence Microsoft SQL Server Workgroup Edition Microsoft SQL Server Express Edition Microsoft SQL Azure Database Microsoft SQL Compact Edition Μicrosoft Developer SQL Server Edition Microsoft SQL Server 2005 Embedded Edition Microsoft SQL Server Evaluation Edition Microsoft SQL Server Fast Track 43

44 Microsoft SQL LocalDB Microsoft SQL Parellel Data Warehouse (PDW) Microsoft SQL Datawarehouse Appliance Edition Αποθήκεςζη Γεδομένυν Ο ΜS Server ππνζηεξίδεη δηάθνξνπο ηύπνπο δεδνκέλσλ, ζπκπεξηιακβαλνκέλσλ ησλ βαζηθώλ ηύπσλ όπσο Integer, Float, Decimal, Char (ζπκπεξηιακβαλνκέλσλ ησλ ζπκβνινζεηξώλ), Varchar (ζπκβνινζεηξέο κεηαβιεηνύ κήθνπο), Binary (γηα αδηακόξθσηα δεδνκέλα), Text (γηα θείκελν) ελώ επηηξέπεη ζηνλ ρξήζηε λα νξίδεη ζύλζεηνπο ηύπνπο (UDTs). Δπίζεο εκθαλίδεη ζηαηηζηηθά ζηνηρεία ζρεηηθά κε ηνλ δηαθνκηζηή κε ηελ κνξθή εηθνληθώλ πηλάθσλ θαη πξνβνιώλ πνπ νλνκάδνληαη Dynamic Management Views - DMVs. Δθηόο από ηνπο πίλαθεο, κηα βάζε δεδνκέλσλ κπνξεί λα πεξηέρεη θαη άιια αληηθείκελα, όπσο πξνβνιέο, απνζεθεπκέλεο δηαδηθαζίεο, επξεηήξηα, πεξηνξηζκνύο, όπσο θαη έλα ζύζηεκα θαηαγξαθήο ζπλαιιαγώλ (transaction log). Σν αλώηαην όξην αληηθεηκέλσλ πνπ κπνξεί λα πεξηέρεη κηα βάζε δεδνκέλσλ ηνπ SQL Server είλαη 231 αληηθείκελα, θαη κπνξεί λα δηαζέηεη πνιιαπιά αξρεία ζε επίπεδν ιεηηνπξγηθνύ ζπζηήκαηνο κέγηζηνπ κεγέζνπο 260 bytes (1 exabyte). Σα ζηνηρεία ηεο βάζεο δεδνκέλσλ απνζεθεύνληαη ζε αξρεία δεδνκέλσλ κε επέθηαζε.mdf. Άιια δεπηεξεύνληα αξρεία δεδνκέλσλ πνπ ρξεζηκνπνηνύληαη γηα ηελ απνζήθεπζε πξναηξεηηθώλ πιεξνθνξηώλ ζρεηηθά κε ηα πξσηνγελή δεδνκέλα (meta-data) πξνζδηνξίδνληαη κε ηελ επέθηαζε.ndf. Σα log αξρεία απνζεθεύνληαη κε ηελ επέθηαζε.ldf. Ο απνζεθεπηηθόο ρώξνο ηεο βάζεο δεδνκέλσλ ρσξίδεηαη ζε δηαδνρηθά αξηζκεκέλεο ζειίδεο, κεγέζνπο 8 KB ε θάζε κία. Μηα ζειίδα είλαη ε βαζηθή I/O κνλάδα γηα ηηο ζπλαιιαγέο ηνπ SQL Server. Κάζε ζειίδα ζπλνδεύεηαη από κηα θεθαιίδα κεγέζνπο 96 byte όπνπ απνζεθεύνληαη metadata θαη πιεξνθνξίεο ζρεηηθά κε ηελ θάζε ζειίδα, όπσο ν αξηζκόο ηεο, ν ηύπνο ηεο, ν ελαπνκέλσλ ειεύζεξνο ρώξνο θαη ην ID ηνπ αληηθεηκέλνπ ζην νπνίν αληηζηνηρεί ε ζειίδα. Ο ηύπνο ηεο ζειίδαο παξέρεη πιεξνθνξίεο ζρεηηθά κε ηα δεδνκέλα πνπ πεξηιακβάλνληαη ζηε ζειίδα επξεηήξην, ράξηεο θαηαλνκήο (allocation map), ηζηνξηθό αιιαγώλ (change map), ή πεξηέρεη κεγάιεο ηύπνπο δεδνκέλσλ, εηθόλεο ή θείκελα κεγάινπ κήθνπο. Παξόιν πνπ ε ζειίδα είλαη ε βαζηθή κνλάδα I/O, σο βαζηθή κνλάδα ηνπ ρώξνπ νξίδεηαη ε έθηαζε (extent), πνπ απνηειείηαη από 8 ζειίδεο. Έηζη, έλα αληηθείκελν κπνξεί είηε λα θαιύπηεη όιεο ηηο ζειίδεο ζε κηα έθηαζε (uniform extent) ή λα ηηο κνηξάδεηαη κε έσο 7 δηαθνξεηηθά αληηθείκελα (mixed extent). Αληίζηνηρα, κηα εγγξαθή πίλαθα δελ κπνξεί λα εθηείλεηαη ζε πεξηζζόηεξεο από κία ζειίδεο, έηζη ώζηε λα πεξηνξίδεηαη κέγεζνο 8 KB. Ωζηόζν, εάλ ηα δεδνκέλα ππεξβαίλνπλ ηα 8 KB θαη ε εγγξαθή πεξηέρεη δεδνκέλα ηύπνπ varchar ή varbinary, ηα δεδνκέλα 44

45 ζηηο ζηήιεο απηέο απνζεθεύνληαη ζε λέα ζειίδα (ή, ελδερνκέλσο, κηα αθνινπζία ζειίδσλ) θαη αληηθαζίζηαληαη κε έλα δείθηε πξνο ηε λέα ζειίδα. Ωο πξνο ηε θπζηθή απνζήθεπζε ελόο πίλαθα, νη εγγξαθέο κνηξάδνληαη ζε κηα ζεηξά από δηακεξίζκαηα (partitions), αξηζκεκέλα από ην 1 έσο ην n. Σν κέγεζνο ηνπ δηακεξίζκαηνο θαζνξίδεηαη από ην ρξήζηε, ελώ σο πξνεπηινγή όιεο νη γξακκέο απνζεθεύνληαη έλα κόλν δηακέξηζκα. Έλαο πίλαθαο ρσξίδεηαη ζε πνιιά δηακεξίζκαηα, πξνθεηκέλνπ ε βάζε δεδνκέλσλ λα κπνξεί λα απνζεθεπηεί θπζηθά ζηα ζπκπιέγκαηα (clusters)ηνπ ζθιεξνύ δίζθνπ. Οη εγγξαθέο ζε θάζε δηακέξηζκα απνζεθεύνληαη είηε κε κνξθή Β-tree ή ζε δνκή ζσξνύ (heap), αλάινγα κε ηελ ύπαξμε επξεηεξίνπ ή όρη. Αλ ν πίλαθαο δηαζέηεη ζπλδεδεκέλν επξεηήξην (associated index) γηα ηελ ηαρεία αλάθηεζε ησλ εγγξαθώλ, απηέο απνζεθεύνληαη ζε ζεηξά ζύκθσλα κε ηηο ηηκέο ηνπ επξεηεξίνπ, νη νπνίεο απνζεθεύνληαη ζε έλα B-tree. ε απηή ηε δνκή δέλδξνπ, ηα δεδνκέλα βξίζθνληαη ζηνλ θόκβν ησλ θύιισλ, θαη νη άιινη θόκβνη εκπεξηέρνπλ ηηο ηηκέο ησλ δεηθηώλ πνπ δείρλνπλ ζηα δεδνκέλα. Δάλ ην επξεηήξην δελ είλαη ζπλδεδεκέλν, νη εγγξαθέο δελ ηαμηλνκνύληαη αλάινγα κε ηηο ηηκέο ηνπ. Αλ ν πίλαθαο δελ δηαζέηεη επξεηήξην, νη εγγξαθέο απνζεθεύνληαη ζε κηα κε-δηαηεηαγκέλε δνκή ζσξνύ MySQL Σν MySQL ζεσξείηαη ην δεύηεξν πην επξέσο ρξεζηκνπνηνύκελν RDBMS, κεηά ηελ Oracle, θαη ην πξώην open-source. Σν όλνκά ηνπ πξνέξρεηαη από ηελ θόξε ηνπ ζπληδξπηή ηνπ Michael Widenius, My θαη ηε γιώζζα MySQL. Ο πεγαίνο θώδηθαο ηνπ MySQL είλαη επξέσο δηαζέζηκνο ππό ηνπο όξνπο ηεο αδεηνδόηεζεο GNU - General Public License (θάηη πνπ ηνλ ραξαθηεξίδεη σο open-source). Ζ ίδηα εθαξκνγή αλήθεη θαη ρξεκαηνδνηείηαη από κηα εληαία θεξδνζθνπηθή εηαηξεία, ηε ζνπεδηθή MySQL AB, ε νπνία ηώξα αλήθεη ζηελ Oracle Corporation. Γηα επηρεηξεκαηηθή ρξήζε δηαηίζεληαη εθδόζεηο ππό πιεξσκή πνπ πξνζθέξνπλ επηπιένλ ιεηηνπξγηθόηεηα θαη δπλαηόηεηεο. Μεξηθέο από ηηο πην δηάζεκεο εθαξκνγέο πνπ ρξεζηκνπνηνύλ MySQL βάζεηο δεδνκέλσλ είλαη νη: TYPO3, MODx, Joomla, WordPress, phpbb, MyBB, Drupal θαη άιιεο. Σν MySQL ρξεζηκνπνηείηαη επίζεο ζε πνιιέο, πςεινύ πξνθίι, ηζηνζειίδεο κεγάιεο θιίκαθαο, ζπκπεξηιακβαλνκέλσλ ησλ: Wikipedia, Google (αλ θαη όρη γηα αλαδήηεζε), Facebook, Twitter, Flickr, θαη YouTube. Γιεπαθέρ 45 Σν MySQL, σο έλα RDBMS, δελ δηαζέηεη εγθαηεζηεκέλα εξγαιεία GUI ή θάπνην γξαθηθό

46 πεξηβάιινλ γηα ηε δηαρείξηζε ησλ βάζεσλ δεδνκέλσλ. Οη εληνιέο από ηνλ ρξήζηε εηζάγνληαη από κηα command-line console. Ωζηόζν, γηα κεγαιύηεξε επρξεζηία, ε Oracle αλέπηπμε έλα ειεύζεξν front-end ινγηζκηθό, ην MySQL Workbench, πξνθεηκέλνπ λα κπνξνύλ νη ρξήζηεο λα εθηεινύλ εξγαζίεο όπσο ε δεκηνπξγία θαη δηαρείξηζε βάζεσλ, ε δεκηνπξγία δνκώλ, ε δεκηνπξγία αληηγξάθσλ αζθαιείαο ησλ βάζεσλ, ε παξαθνινύζεζε ηεο ζπλνιηθήο ιεηηνπξγίαο ηνπ server θαη ε ζπλεξγαζία κε εμσηεξηθά αξρεία θαη εθαξκνγέο, δίρσο λα ρξεηάδεηαη λα γλσξίδνπλ ηηο εληνιέο ηνπ MySQL, κέζσ ελόο desktop.πέξα από ην MySQL Workbench, άιιεο ηδηόθηεηεο ή δσξεάλ εθαξκνγέο πνπ δίλνπλ ηε δπλαηόηεηα γηα νπηηθή δηαρείξηζε MySQL βάζεσλ (ρσξίο λα είλαη πάληα απηόο ν πξσηαξρηθόο ηνπο ξόινο) είλαη νη εμήο: Adminer - Γσξεάλ MySQL front-end εθαξκνγή, γξακκέλε ζε PHP script, κε δπλαηόηεηα δηαρείξηζεο πνιιαπιώλ βάζεσλ δεδνκέλσλ, κε πνιιά δηαζέζηκα πξόηππα CSS. DBEdit - Διεύζεξε front-end εθαξκνγή γηα MySQL θαη άιιεο βάζεηο δεδνκέλσλ HeidiSQL - Μηα πιήξσλ δπλαηνηήησλ εθαξκνγή γηα Windows πνπ κπνξεί λα ζπλδεζεί ζε ηνπηθνύο ή απνκαθξπζκέλνπο δηαθνκηζηέο γηα ηε δηαρείξηζε MySQL βάζεσλ δεδνκέλσλ, πηλάθσλ, ζηειώλ, θαζώο θαη κεκνλσκέλσλ εγγξαθώλ δεδνκέλσλ. Δπίζεο, ππνζηεξίδεη εμεηδηθεπκέλεο GUI ιεηηνπξγίεο γηα ηα πεδία εκεξνκελίαο/ώξαο θαη πνιιαπιώλ ηηκώλ. LibreOffice Base - Σν LibreOffice Base (αληίζηνηρν ηεο Access γηα ηα LibreOffice) επηηξέπεη ηε δεκηνπξγία θαη ηε δηαρείξηζε βάζεσλ δεδνκέλσλ θαζώο θαη ηελ πξνεηνηκαζία θνξκώλ θαη εθζέζεσλ πνπ παξέρνπλ ζηνπο ηειηθνύο ρξήζηεο εύθνιε πξόζβαζε ζηα δεδνκέλα. Όπσο θαη ε Microsoft Access, κπνξεί λα ρξεζηκνπνηεζεί σο front-end γηα δηάθνξα DBMS, ζπκπεξηιακβαλνκέλσλ ησλ βάζεσλ ηεο Access (JET), ODBC πεγώλ δεδνκέλσλ, MySQL θαη PostgreSQL. Navicat - εηξά ηδηόθηεησλ γξαθηθώλ εθαξκνγώλ δηαρείξηζεο βάζεσλ δεδνκέλσλ, πνπ αλαπηύρζεθε γηα Windows, Macintosh θαη Linux. OpenOffice.org Παξόκνην ηνπ LibreOffice Base, ην OpenOffice.org Base κπνξεί λα δηαρεηξηζηεί βάζεηο δεδνκέλσλ MySQL. phpmyadmin - Γσξεάλ δηαδηθηπαθή front-end εθαξκνγή, ίζσο ε πην δηαδεδνκέλε ζηνπο ρξήζηεο ηνπ δηαδηθηύνπ, έρεη αλαπηπρζεί ζε PHP θαη πεξηιακβάλεηαη ζε ινγηζκηθά ζηνίβεο όπσο LAMP, MAMP, XAMPP θαη WAMP. Webmin - Γσξεάλ δηαδηθηπαθή εθαξκνγή δηαρείξεζεο βάζεσλ MySQL, πνπ αλαπηύρζεθε θαηαξρήλ ζε Perl, κε νξηζκέλα ηκήκαηα ηνπ θώδηθά ηεο γξακκέλα ζε Java. SQLBuddy - Γσξεάλ δηαδηθηπαθή front-end εθαξκνγή, πνπ αλαπηύρζεθε ζε PHP. 46

47 Υαπακηηπιζηικά Σα πην βαζηθά ραξαθηεξηζηηθά πνπ δηαζέηεη ε ηειεπηαία έθδνζε MySQL, 5.6: - Cross-platform ππνζηήξημε - In-built δηαδηθαζίεο, ρξεζηκνπνηώληαο κηα procedure γιώζζα ζπκίδεη ηελ SQL / PSM - Triggers (κηθξά ηκήκαηα θώδηθα πνπ εθηεινύληαη όηαλ ζπκβαίλνπλ ζπγθεθξηκέλα γεγνλόηα) - Γείθηεο εγγξαθώλ - πλερώο ελεκεξσκέλεο όςεηο (views) - Πιεξνθνξίεο βάζεο (Information schema) - Πιεξνθνξίεο απόδνζεο (Performance schema) - Τπνζηήξημε SSL ιεηηνπξγίαο - Πξνζσξηλή απνζήθεπζε αηηεκάησλ - Πιήξεο επξεηεξηνπνίεζε θαη αλαδήηεζε θεηκέλνπ - Δλζσκαησκέλεο βηβιηνζήθεο - Τπνζηήξημε Unicode ραξαθηήξσλ - Πνιιαπιέο κεραλέο απνζήθεπζεο (InnoDB, MyISAM, Merge, Memory (heap), Federated, Archive, CSV, Blackhole, NDB Cluster. - Γπλαηόηεηα νκαδνπνίεζεο θαη ζπγθέληξσζεο πνιιαπιώλ ζπλαιιαγώλ από πνιιαπιέο ζπλδέζεηο γηα κεγαιύηεξν ξπζκό εμππεξέηεζεο ύνδεζη MySQL με PHP Τπάξρεη έλαο κεγάινο αξηζκόο ζπλαξηήζεσλ ηεο PHP νη νπνίεο επηηξέπνπλ ηελ δηαζύλδεζε κε ηελ βάζε δεδνκέλσλ MySQL θαη θαιύπηνπλ έλα πνιύ κεγάιν εύξνο ελεξγεηώλ, από ηελ ζύλδεζε ζε θάπνηα βάζε δεδνκέλσλ θαη ηελ δεκηνπξγία πηλάθσλ, κέρξη ηελ εθηέιεζε εξσηεκάησλ. Οη ζεκαληηθόηεξεο από απηέο είλαη: mysql_close mysql_connect mysql_create_db mysql_error mysql_fetch_array mysql_fetch_row mysql_num_rows mysql_query Σεξκαηηζκόο ζύλδεζεο κε κηα βάζε δεδνκέλσλ Γεκηνπξγία ζύλδεζεο κε κηα βάζε δεδνκέλσλ Γεκηνπξγία κηαο βάζεο δεδνκέλσλ MySQL Δπηζηξέθεη ην κήλπκα ιάζνπο γηα ην ηειεπηαίν SQL εξώηεκα Δπηζηξνθή ηνπ πίλαθα ησλ απνηειεζκάησλ ζε έλα εξώηεκα SQL Δπηζηξνθή κηαο κόλν εγγξαθήο σο απνηέιεζκα ελόο εξσηήκαηνο SQL Καηακέηξεζε αξηζκνύ εγγξαθώλ πνπ επηζηξάθεθαλ σο απνηειέζκαηα Δθηέιεζε ελόο εξσηήκαηνο MySQL 47

48 mysql_result mysql_select_db Δπηζηξνθή ηνπ απνηειέζκαηνο ελόο εξσηήκαηνο MySQL Δπηινγή κηαο βάζεο δεδνκέλσλ MySQL 3.5 Λογιζμικά ζηοίβερ (stacks) Σν ινγηζκηθό παθέην ζηνίβαο είλαη έλα ζύλνιν ππνζπζηεκάησλ ινγηζκηθνύ ή ηερλνινγηώλ, θαηά θαλόλα αλνηθηνύ θώδηθα, πνπ απαηηνύληαη γηα λα εθηειέζεη κηα εξγαζία ρσξίο πεξαηηέξσ εμσηεξηθέο εμαξηήζεηο θαη απαηηήζεηο. Μηα ζηνίβα γηα ηελ αλάπηπμε κηα εθαξκνγή web, πεξηιακβάλεη έλαλ web server, έλα RDBMS, θαη κηα server-based script γιώζζα πξνγξακκαηηζκνύ. Δπίζεο θάζε ηέηνηα ζηνίβα δηαθέξεη αλάινγα κε ην ιεηηνπξγηθό ζύζηεκα κε ην νπνίν είλαη ζπκβάηε. Λόγσ ηνπ open-source ραξαθηήξα ησλ επηκέξνπο ηερλνινγηώλ, ζπλήζσο νη πεξηζζόηεξεο ζηνίβεο ζηηο web εθαξκνγέο πεξηιακβάλνπλ ηνλ Apache server, ην MySQL RDBMS θαη ηελ PHP ή ηελ Perl (ζπαληόηεξα) σο script γιώζζα, γη' απηό θαη ζπλήζσο απνθαινύληαη κε ην αθξσλύκην AMP (Apache MySql PHP/Perl). Τπάξρνπλ όκσο πνιιέο παξαιιαγέο, αθόκα θαη γηα ην ίδην ιεηηνπξγηθό ζύζηεκα. Αλάινγα κε ην ιεηηνπξγηθό ζύζηεκα κε ην νπνίν ζπλεξγάδνληαη, oη AMPs δηαρσξίδνληαη σο εμήο: Cross-platform XAMPP (X-plarform Apache MySql PHP Perl)(δηαζέηεη δηαθνξεηηθό exe γηα θάζε έλα από όια ηα δηαζέζηκα ιεηηνπξγηθά ζπζηήκαηα) AMPPS (Apache MySQL PHP Perl Python (PPS)) (γηα όια ηα ιεηηνπξγηθά ζπζηήκαηα) Zend Server Community Edition Bitnami (project πνπ πεξηιακβάλεη ηελ θαηαζθεπή πνιιώλ ζπλδπαζκώλ) Linux LAMP (Linux Apache MySql PHP) Bitnami LAMPStack (Linux Apache MySQL PHP-Python(PStack)) Bitnami LAPPStack (Linux Apache PostgreSQL PHP-Python) AMPPS XAMPP γηα Linux Mac AMPPS MAMP (Mac Apache MySql PHP) DAMP (Darwin Apache MySql PHP) 48

49 Bitnami MAMPStack (Mac Apache MySql PHP-Python) XAMPP γηα Mac Windows AMPPS WAMPServer (Windows Apache MySql PHP) XAMPP γηα Windows 49

50 ΠΑΡΑΡΣΗΜΑ Α: ΔΓΥΔΙΡΙΓΙΟ ΔΦΑΡΜΟΓΗ 1.1 ΔΓΚΑΣΑΣΑΗ ΔΝΟ ΛΟΓΙΜΙΚΟΤ ΣΟΙΒΑ AMP Αξρηθά, γηα λα είλαη πινπνηήζηκε ε εθαξκνγή πνπ ζρεδηάδνπκε, είλαη απαξαίηεην λα εγθαηαζηήζνπκε ην απαξαίηεην ιεηηνπξγηθό ώζηε λα κπνξεί λα ν ππνινγηζηήο λα ιεηηνπξγήζεη σο δηαθνκηζηήο. Γη' απηό ην ζθνπό επηιέμακε ην ινγηζκηθό WAMP, ώζηε λα είλαη ζπκβαηό κε ππνινγηζηέο ιεηηνπξγηθνύ ζπζηήκαηνο ηύπνπ Windows. Αθνύ εγθαηαζηήζνπκε ην ινγηζκηθό, πιένλ ζηνλ Ζ/Τ ζα κπνξεί λα εθηειείηαη ν Apache σο web server κε όλνκα localhost, λα ζπλδέεηαη κε βάζεηο δεδνκέλσλ ηύπνπ MySQL θαη λα εθηεινύκε php script πξνγξάκκαηα. Γηα λα εθθηλήζεη ν web server απιά επηιέγνπκε ην εηθνλίδην ηνπ εγθαηεζηεκέλνπ AMP ινγηζκηθνύ. Ζ εκθάληζε ηνπ εηθνληδίνπ θάησ δεμηά ζε πξάζηλν ρξώκα δείρλεη όηη ν server ιεηηνπξγεί δίρσο πξνβιήκαηα. Όπσο θαίλεηαη θαη από ηελ εηθόλα ην ινγηζκηθό WAMP δίλεη ζηνλ ρξήζηε ηηο εμήο βαζηθέο δπλαηόηεηεο: Να ρεηξηζηεί ηε βάζε MySQL κέζσ εληνιώλ επηιέγνληαο MySQL Console Να επηιέμεη ηελ αξρηθή ζειίδα ηνπ server παηώληαο localhost Να επηιέμεη λα δηαρεηξηζηεί ηηο βάζεηο δεδνκέλσλ ηνπ server κέζσ ηνπ GUI phpmyadmin

51 1.2 ΔΓΚΑΣΑΣΑΗ ΣΗ ΒΑΗ ΓΔΓΟΜΔΝΧΝ Πξηλ ηελ εθηέιεζε ηεο εθαξκνγήο, ρξεηάδεηαη λα εγθαηαζηαζεί ε βάζε δεδνκέλσλ. H εγθαηάζηαζε γίλεηαη κέζσ ηεο εηζαγσγήο ελόο αξρείνπ.sql ην νπνίν πεξηέρεη SQL εληνιέο γηα ηε δεκηνπξγία ηεο βάζεο, είηε ζην command line console κε ηελ εληνιή: mysql -u username -p password db_name < database.sql όπνπ username είλαη ην όλνκα ρξήζηε ηεο βάζεο, password ν θσδηθόο θαη db_name ην όλνκα ηεο βάζεο, είηε κέζσ ηνπ phpmyadmin όπνπ ν ρξήζηεο επηιέγεη Δηζαγσγή θαη ην αξρείν: Δπηιέγνληαο εηζαγσγή ηνπ αξρείνπ database.sql ην phpmyadmin εγθαζηζηά ηε βάζε δεδνκέλσλ law_firm πνπ πεξηέρεη ηνπο 5 πίλαθεο cases,customers,executives,lawyers ligitations.

52

53 1.3 ΔΙΑΓΧΓΗ ΣΗΝ ΔΦΑΡΜΟΓΗ Ζ αξρηθή ζειίδα ηεο εθαξκνγήο έρεη ηε δηεύζπλζε (url) Ο ρξήζηεο κπνξεί λα ηελ εκθαλίζεη είηε γξάθνληαο ηε δηεύζπλζε ζηνλ web browser είηε επηιέγνληαο αξρηθά Localhost από ην κελνύ ηνπ WAMP θαη ην όλνκα ηεο εθαξκνγήο ζηε ζπλέρεηα από ηελ αξρηθή ζειίδα ηνπ WAMP Διζαγυγή Υπήζηη

54 ηελ αξρηθή ζειίδα ν ρξήζηεο εηζάγεη ην ηνπ σο Όλνκα Υξήζηε θαη ηνλ πξσζνπηθό ηνπ θσδηθό θαη παηάεη ΟΚ. Με ην πάηεκα ηνπ θνπκπηνύ ε εθαξκνγή θάλεη δπν ειέγρνπο. Ο πξώηνο έιεγρνο γίλεηαη ζηνλ ππνινγηζηή ηνπ ρξήζηε πξηλ αθόκα ζηαινύλ ηα δεδνκέλα ζηνλ δηαθνκηζηή γηα ην αλ ην Όλνκα Υξήζηε είλαη έγθπξε δηεύζπλζε. Ο έιεγρνο επηηπγράλεηαη κέζσ ηεο ηδηόηεηαο type = ηνπ ζηνηρείνπ input ηεο HTML πνπ δέρεηαη ην ηνπ ρξήζηε. Δπίζεο ε ηδηόηεηα type = password ηνπ ζηνηρείνπ πνπ δέρεηαη ηνλ θσδηθό εμαζθαιίδεη όηη νη ραξαθηήξεο εκθαλίδνληαη θξππηνγξαθεκέλνη. Ο δεύηεξνο έιεγρνο, πνπ είλαη θαη ν βαζηθόο, πξαγκαηνπνηείηαη από ηνλ script θώδηθα ηεο php πνπ εθηειείηαη από ηνλ δηαθνκηζηή γηα ην αλ ηα ζηνηρεία πνπ εηζάγνληαη αλήθνπλ ζε δηθεγόξν ηνπ

55 γξαθείνπ: $result = mysqli_query($db->connect(),"select * FROM lawyers WHERE ='$username' AND ΚΩΔΙΚΟ='$password'"); ε πεξίπησζε πνπ ν θώδηθαο php επηζηξέςεη 0 εγγξαθέο ηα ζηνηρεία είλαη ιάζνο θαη εκθαλίδεηαη ην θαηάιιειν κήλπκα ε δηαθνξεηηθή πεξίπησζε θαη εθόζνλ ε είζνδνο είλαη πεηπρεκέλε ε εθαξκνγή εκθαλίδεη ηελ θεληξηθή νζόλε ηεο εθαξκνγήο main.php.

56 1.3.2 ΠΡΟΒΟΛΔ ΔΓΓΡΑΦΧΝ Από ηελ θεληξηθή ζειίδα, ν ρξήζηεο έρεη ηηο εμήο επηινγέο Να απνζπλδεζεί από ηελ εθαξκνγή, παηώληαο ην ζύλδεζκν 'Απνζύλδεζε' Να επηιέμεη ηελ πξνβνιή κηαο εθ ησλ επηινγώλ πνπ ηνπ δίλνληαη από ην αξηζηεξό κελνύ επηινγώλ πρ ΓΗΚΖΓΟΡΟΗ, βάζεη πεδίνπ αλαδήηεζεο. Με ην πάηεκα ελόο θνπκπηνύ εθηειείηαη έλα sql εξώηεκα πνπ επηιέγεη ηηο εγγξαθέο εθείλεο ηνπ πίλαθα πνπ επηιέρζεθε θαη ηθαλνπνηνύλ ην πεδίν αλαδήηεζεο. Γηα θάζε εγγξαθή εκθαλίδνληαη νη ζηήιεο κε ηα αληίζηνηρα ζηνηρεία γηα θάζε δηθεγόξν, πειάηε, ππόζεζε, ζπλεξγάηε ή αγσγή. Μέζσ ησλ αληίζηνηρσλ sql αηηεκάησλ ππάξρνπλ θαη πιεξνθνξίεο πνπ ζπλδπάδνληαη θαηά ηελ πξνβνιή ησλ πηλάθσλ. Γηα παξάδεηγκα, κέζσ ηεο αληηζηνίρεζεο ησλ

57 πεδίσλ ΑΡΗΘΜΟ ηνπ πίλαθα lawyers θαη ΑΡ_ΓΗΚΖΓΟΡΟΤ ηνπ πίλαθα ligitations γηα θάζε αγσγή εκθαλίδεηαη θαη ην νλνκαηεπώλπκν ηνπ δηθεγόξνπ πνπ ηελ έρεη αλαιάβεη. Δπίζεο νη επηινγέο ΜΗΘΟΓΟΗΑ θαη ΖΜΔΡΟΛΟΓΗΟ δελ πξνβάινπλ απεπζείαο ηηο εγγξαθέο θάπνηνπ πίλαθα, αιιά ζπλδπάδνπλ ηηο πιεξνθνξίεο από πεδία εγγξαθώλ άιισλ πηλάθσλ θαη πξνβάινπλ ην ηειηθό απνηέιεζκα πρ κε ηελ επηινγή ΜΗΘΟΓΟΗΑ ππνινγίδεηαη ν κηζζόο θάζε δηθεγόξνπ,

58 θαη κε ηελ επηινγή ΖΜΔΡΟΛΟΓΗΟ εκθαλίδνληαη όιεο νη αγσγέο κε εκεξνινγηαθή ζεηξά θαη ην νλνκαηεπώλπκν ηνπ δηθεγόξνπ πνπ ηηο έρεη αλαιάβεη ΔΙΑΓΧΓΗ ΔΓΓΡΑΦΗ Αθνύ εκθαληζηνύλ νη εγγξαθέο ελόο πίλαθα ν ρξήζηεο κπνξεί λα εηζάγεη κηα θαηλνύξγηα εγγξαθή (απηό ηζρύεη κόλν γηα ηηο πξνβνιέο πνπ αλαινγνύλ ζε έλαλ ζπγθεθξηκέλν πίλαθα, δειαδή όρη ε ΜΗΘΟΓΟΗΑ θαη ην ΖΜΔΡΟΛΟΓΗΟ) Δπηιέγνληαο Δηζαγσγή Νέαο Δγγξαθήο εθηειείηαη ν θώδηθαο php πνπ δεκηνπξγεί κηα

59 θόξκα HTML κε έλα ζηνηρείν input γηα θάζε πεδίν ηνπ πίλαθα όπνπ ζα γίλεη ε εγγξαθή (εμαηξείηαη ην πεδίν ΑΡΗΘΜΟ, ηνπ νπνίνπ ε ηηκή απμάλεηαη απηόκαηα θαηά 1 όηαλ εθηειείηαη κηα εηζαγσγή ράξε ζην παξαθάησ ηκήκα θώδηθα ηεο SQL Αλ ν ρξήζηεο επηιέμεη Αθύξσζε ε εθαξκνγή επηζηξέθεη ζηελ αξρηθή νζόλε ρσξίο θακία αιιαγή ζηελ βάζε. Αλ ν ρξήζηεο έρεη εηζαγάγεη έγθπξεο πιεξνθνξίεο (πρ ν ΑΡ_ΓΗΚΖΓΟΡΟΤ λα αληηζηνηρεί ζε πξαγκαηηθό δηθεγόξν θαη λα ππάξρεη) θαη παηήζεη Δπηβεβαίσζε, ε εθαξκνγή επηζηξέθεη ζηελ αξρηθή νζόλε κε ηελ εηζαγσγή λα έρεη νινθιεξσζεί.

60 1.3.4 ΔΠΔΞΔΡΓΑΙΑ ΔΓΓΡΑΦΗ Όηαλ εκθαλίδνληαη νη εγγξαθέο ελόο πίλαθα ν ρξήζηεο κπνξεί λα επεμεξγαζηεί ηηο ηηκέο ησλ πεδίσλ κηαο εγγξαθήο (επίζεο ηζρύεη κόλν γηα ηηο πξνβνιέο πνπ αλαινγνύλ ζε έλαλ ζπγθεθξηκέλν πίλαθα, δειαδή όρη ε ΜΗΘΟΓΟΗΑ θαη ην ΖΔΡΟΛΟΓΗΟ) Δπηιέγνληαο ην θνπκπί κε ην εηθνλίδην ηεο επεμεξγαζίαο εθηειείηαη ν θώδηθαο php πνπ δεκηνπξγεί κηα θόξκα HTML κε έλα ζηνηρείν input γηα θάζε πεδίν εθείλεο ηεο εγγξαθήο πνπ επηιέρζεθε θαη ηελ ηηκή ηνπ πεδίνπ (εκθαλίδνληαη ηα πεδία ηνπ πίλαθα εθηόο ηνπ πεδίνπ ΑΡΗΘΜΟ, θαη όρη αθξηβώο όζα θαίλνληαη ζηελ πξνβνιή)

61 Ο ρξήζηεο ζηε ζπλέρεηα κπνξεί λα θάλεη ηελ αιιαγή πνπ επηζπκεί (πρ ζηελ ζπγθεθξηκέλε πεξίπησζε αιιαγή ηεο εκεξνκελίαο αλάζεζεο

62 θαη ζηε ζπλέρεηα παηώληαο Δπηβεβαίσζε ε επεμεξγαζία νινθιεξώλεηαη θαη εκθαλίδεηαη ε αξρηθή νζόλε. Ξαλαεπηιέγνληαο Τπνζέζεηο ε αιιαγή έρεη νινθιεξσζεί ε πεξίπησζε πνπ ν ρξήζηεο επηιέμεη Αθύξσζε ε αιιαγή δελ πινπνηείηαη.

63 1.3.5 ΓΙΑΓΡΑΦΗ ΔΓΓΡΑΦΗ Όηαλ εκθαλίδνληαη νη εγγξαθέο ελόο πίλαθα ν ρξήζηεο κπνξεί λα επίζεο λα δηαγξάςεη κηα εγγξαθή (μαλά ηζρύεη κόλν γηα ηηο πξνβνιέο πνπ αλαινγνύλ ζε έλαλ ζπγθεθξηκέλν πίλαθα, δειαδή όρη ε ΜΗΘΟΓΟΗΑ θαη ην ΖΔΡΟΛΟΓΗΟ) Δπηιέγνληαο ην θνπκπί κε ην εηθνλίδην ηεο δηαγξαθήο εκθαλίδεηαη έλα pop παξάζπξν πνπ δεηάεη επηβεβαίσζε ε πεξίπησζε πνπ ν ρξήζηεο επηιέμεη ΟΚ εκθαλίδεηαη κήλπκα επηβεβαίσζεο θαη ε δηαγξαθή νινθιεξώλεηαη.

64 ε πεξίπησζε πνπ ε δηαγξαθή δελ κπνξεί λα νινθιεξσζεί γηα νπνηνδήπνηε ιόγσ, εκθαλίδεηαη αληίζηνηρν κήλπκα. Όηαλ εθηειείηαη κηα δηαγξαθή εγγξαθήο πνπ ην πξσηεύνλ πεδίν ηεο παίδεη ξόιν μέλνπ

Η αξρή ζύλδεζεο Client-Server

Η αξρή ζύλδεζεο Client-Server Η αξρή ζύλδεζεο Client-Server Δηαθνκηζηήο (Server) Πξνζθέξεη ππεξεζίεο ζηνπο Πειάηεο (Client) Μεγάινη ππνινγηζηέο γηα ηηο ππεξεζίεο Internet (π.ρ. WWW, FTP) Λακβάλεη εξσηήζεηο θαη δίδεη απαληήζεηο Πειάηεο

Διαβάστε περισσότερα

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP ηότοι εργαζηηρίοσ ην πιαίζην ηνπ ζπγθεθξηκέλνπ εξγαζηεξίνπ ζα παξνπζηαζηνύλ βαζηθέο ιεηηνπξγίεο ησλ Windows XP πνπ ζρεηίδνληαη

Διαβάστε περισσότερα

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress. Αιγόξηζκνη 2.2.7.3 Γνκή επηινγήο Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ 1 Πνιιαπιή Δληνιή Δπηινγήο Αν ζπλζήθε_1 ηόηε εληνιέο_1 αλλιώς_αν ζπλζήθε_2 ηόηε εληνιέο_2...

Διαβάστε περισσότερα

Α Ο Κ Η Α Μ Α Ζ Η Η Ρ Η ( S E A R C H )

Α Ο Κ Η Α Μ Α Ζ Η Η Ρ Η ( S E A R C H ) Ξ G O O G L E S C H O L A R Α Ο Ξ Ε Κ Ε Θ Λ Θ Α Λ Η Τ Α Μ Η Α Μ Α Ζ Η Η Ρ Η Ρ Οξαγκαηνπνηώληαο αλαδήηεζε ζην GoogleScholar (http://scholar.google.com/) ν ρξήζηεο κπνξεί λα εληνπίζεη πιηθό αθαδεκαϊθνύ θαη

Διαβάστε περισσότερα

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν 2011-12

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν 2011-12 Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν 11-12 Project 6: Ταμίδη κε ηε Μεραλή ηνπ Φξόλνπ Υπεύζπλνη Καζεγεηέο: Ε. Μπηιαλάθε Φ. Αλησλάηνο Δρώηηζη 3: Πνηα από ηα παξαθάησ ΜΜΕ ηεξαξρείηε από πιεπξάο ζεκαζίαο;

Διαβάστε περισσότερα

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ Αιγόξηζκνη 2.2.7.4 Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ Εηζαγσγή ζηηο Αξρέο ηεο Επηζηήκεο ησλ Η/Υ 1 Άζθεζε 34 ζει 53 Έλα ςεθηαθό θσηνγξαθηθό άικπνπκ έρεη απνζεθεπηηθό ρώξν N Mbytes. Να αλαπηύμεηε

Διαβάστε περισσότερα

ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX

ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX Σηότοι εργαζηηρίοσ Σην πιαίζην ηνπ ζπγθεθξηκέλνπ εξγαζηεξίνπ, νη θνηηεηέο ζα εμνηθεησζνύλ κε βαζηθέο εληνιέο δηθηπαθώλ πξσηνθόιισλ νη νπνίεο βξίζθνπλ εθαξκνγή ζε πεξηβάιινληα Windows

Διαβάστε περισσότερα

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS ηότοι εργαζηηρίοσ ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS ην πιαίζην ηνπ ζπγθεθξηκέλνπ εξγαζηεξίνπ ζα παξνπζηαζηεί ε δηαδηθαζία ηωλ ξπζκίζεωλ δηθηύνπ ζε ιεηηνπξγηθό ζύζηεκα Windows XP. Η δηαδηθαζία ζε γεληθέο γξακκέο

Διαβάστε περισσότερα

Οργάνωση και Δομή Παρουσιάσεων

Οργάνωση και Δομή Παρουσιάσεων Οργάνωση και Δομή Παρουσιάσεων Οη παξνπζηάζεηο κε βνήζεηα ηνπ ππνινγηζηή γίλνληαη κε πξνγξάκκαηα παξνπζηάζεσλ, όπσο ην OpenOffice.org Impress [1] θαη ην Microsoft Office PowerPoint [2]. Απηά ηα πξνγξάκκαηα

Διαβάστε περισσότερα

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Ειζαγωγή ζηη Φωηογραθία. Χριζηάκης Σαζεΐδης EFIAP

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Ειζαγωγή ζηη Φωηογραθία. Χριζηάκης Σαζεΐδης EFIAP ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ Ειζαγωγή ζηη Φωηογραθία Χριζηάκης Σαζεΐδης EFIAP 1 ΜΑΘΗΜΑ 6 ο Προγράμμαηα θωηογραθικών μηχανών Επιλογέας προγραμμάηων Μαο δίλεη ηε δπλαηόηεηα λα ειέγμνπκε ην άλνηγκα δηαθξάγκαηνο θαη

Διαβάστε περισσότερα

Ενδεικτικά Θέματα Στατιστικής ΙΙ

Ενδεικτικά Θέματα Στατιστικής ΙΙ Ενδεικτικά Θέματα Στατιστικής ΙΙ Θέματα. Έζησ όηη ζε δείγκα 35 θαηνηθηώλ πνπ ελνηθηάδνληαη ζε θνηηεηέο ζηελ Κνδάλε βξέζεθε ην κέζν κεληαίν κίζζσκα ζηα 5 επξώ, ελώ ζην Ζξάθιεην ην κέζν κεληαίν κίζζσκα ζε

Διαβάστε περισσότερα

Μορθές Κακόβοσλοσ Κώδικα (Malicious Code)

Μορθές Κακόβοσλοσ Κώδικα (Malicious Code) Μορθές Κακόβοσλοσ Κώδικα (Malicious Code) Page 1 Υποπλοίαρτος Ν. Πεηράκος ΠΝ Αηδένηα Γνύξεηνη Ίππνη (Trojan Horses) Ινί (Viruses) Worms Root-kit Page 2 Γνύξεηνο Ίππνο (Trojan Horse) Οξηζκόο: Πξόγξακκα

Διαβάστε περισσότερα

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ 2015-2016

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ 2015-2016 Βάσεις Δεδομέμωμ Εξγαζηήξην V Τκήκα Πιεξνθνξηθήο ΑΠΘ 2015-2016 2 Σκοπός του 5 ου εργαστηρίου Σθνπόο απηνύ ηνπ εξγαζηεξίνπ είλαη: ε κειέηε ζύλζεησλ εξσηεκάησλ ζύλδεζεο ζε δύν ή πεξηζζόηεξεο ζρέζεηο ε κειέηε

Διαβάστε περισσότερα

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ ΘΔΜΑ Α Α1. α. Σ β. Σ γ. Λ δ. Λ ε. Λ ζη. Σ Α2. Γ Α3. 1. γ 2. ε 3. δ 4. α Β1. ΘΔΜΑ Β Οη ηειηθνί ππνινγηζηέο παίξλνπλ απνθάζεηο δξνκνιόγεζεο κόλν γηα ηα δηθά ηνπο απηνδύλακα

Διαβάστε περισσότερα

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2 TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 Δημιουργία σελίδων και βιβλίων Έλα θαηλνύξην βηβιίν πεξηέρεη κία άδεηα ζειίδα κε έλα άδεην background. Δελ κπνξνύκε λα μερσξίζνπκε

Διαβάστε περισσότερα

Έκδοζη /10/2014. Νέα λειηοσργικόηηηα - Βεληιώζεις

Έκδοζη /10/2014. Νέα λειηοσργικόηηηα - Βεληιώζεις Έκδοζη 2.89.31 08/10/2014 Η έκδοζη 2.89.31, περιλαμβάνει : Βεληιώζεις Καηάζηαζη Υπερφριών (Ε8) Αναγγελία πρόζληυης (Ε3) 08/10/2014 1 Βεληιώζεις Καηάζηαζη Υπερφριών (Ε8) Επεηδή ζηελ ειεθηξνληθή ππνβνιή

Διαβάστε περισσότερα

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ Φξεζηκόηεηα καζεκαηηθώλ Αξρή θαηακέηξεζεο Όζα έδσζαλ νη Έιιελεο... Τξίγσλνη αξηζκνί Τεηξάγσλνη αξηζκνί Δπηκήθεηο αξηζκνί Πξώηνη αξηζκνί Αξηζκνί κε μερσξηζηέο ηδηόηεηεο Γίδπκνη πξώηνη

Διαβάστε περισσότερα

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84 Διαηιμήζεις για Αιολικά Πάρκα Κώδικες 28, 78 και 84 Διαηιμήζεις για Αιολικά Πάρκα Οη Διαηιμήζεις για Αιολικά Πάρκα εθαξκόδνληαη γηα ηελ απνξξνθνύκελε ελέξγεηα από Αηνιηθά Πάξθα πνπ είλαη ζπλδεδεκέλα ζην

Διαβάστε περισσότερα

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14 .1.10 ζκήζεις ζτ.βιβλίοσ ζελίδας 13 14 Ερωηήζεις Καηανόηζης 1. ύν δηαθνξεηηθέο επζείεο κπνξεί λα έρνπλ θαλέλα θνηλό ζεκείν Έλα θνηλό ζεκείν i ύν θνηλά ζεκεία iλ) Άπεηξα θνηλά ζεκεία ηηηνινγήζηε ηελ απάληεζε

Διαβάστε περισσότερα

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) 30.04.67 FritzBox Fon WLAN 7140 - Annex B (30.04.67)

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) 30.04.67 FritzBox Fon WLAN 7140 - Annex B (30.04.67) Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) 30.04.67 FritzBox Fon WLAN 7140 - Annex B (30.04.67) Γηα λα επαλαθέξεηε ην FritzBox Fon WLAN 7140 ζηηο πξνεπηιεγκέλεο ηνπ ξπζκίζεηο

Διαβάστε περισσότερα

Injection Attacks. Protocol Host FilePath. http://www.site.gr/index.html? field1=valuex&field2=valuey. Query String. Web server HTTP GET.

Injection Attacks. Protocol Host FilePath. http://www.site.gr/index.html? field1=valuex&field2=valuey. Query String. Web server HTTP GET. Πσο γίλεηαη ε πξόζβαζε ζήκεξα; Τν user input πεξλάεη από έλα server-side script κέζσ HTTP methods όπσο POST/GET Τν αίηεκα επεμεξγάδεηαη Αλάινγα αλνίγεη πξόζβαζε ζηε βάζε Query database θαη αλάθηεζε results

Διαβάστε περισσότερα

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2 ΣΡΙΓΩΝΟΜΔΣΡΙΚΔ EΞΙΩΔΙ Πνηα παξαδείγκαηα εμηζώζεσλ ή θαη πξνβιεκάησλ πηζηεύεηαη όηη είλαη θαηάιιεια γηα ηελ επίιπζε ηνπο θαηά ηελ δηάξθεηα ηεο δηδαθηηθήο δηαδηθαζίαο κέζα ζηελ ηάμε; 1 ε ΓΙΓΑΚΣΙΚΗ ΩΡΑ Α.

Διαβάστε περισσότερα

Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots)

Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots) Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots) 1.1 Σςνοπτική Πεπιγπαυή Hot Spots Σα ζεκεία αζύξκαηεο πξόζβαζεο πνπ επηιέρζεθαλ αλαθέξνληαη ζηνλ επόκελν πίλαθα θαη παξνπζηάδνληαη αλαιπηηθά ζηηο επόκελεο παξαγξάθνπο.

Διαβάστε περισσότερα

CT_back office. Internet Business Hellas

CT_back office. Internet Business Hellas CT_back office Internet Business Hellas To CT_call center, είλαη έλα πξωηνπνξηαθό πξνϊόλ δηαρείξηζεο θαη νξγάλωζεο επαθώλ πειαηνινγίνπ. έρεη αλαπηπρζεί από ηελ εηαηξεία καο ζην ζύλνιό ηνπ, είλαη πιήξωο

Διαβάστε περισσότερα

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση Πώς πρέπει να τιμολογεί ένα μονοπώλιο; Μέρξη ζηηγκήο ην κνλνπώιην έρεη ζεσξεζεί ζαλ κηα επηρείξεζε ε νπνία πσιεί ην πξντόλ ηεο ζε θάζε πειάηε ζηελ

Διαβάστε περισσότερα

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά: ΑΝΤΗΛΙΑΚΑ Η Μηκή θαη ν Νηίλνο αλαξσηήζεθαλ πνην αληειηαθό πξντόλ παξέρεη ηελ θαιύηεξε πξνζηαζία ζην δέξκα ηνπο. Τα αληειηαθά πξντόληα έρνπλ έλα δείθηε αληειηαθήο πξνζηαζίαο (SPF), ν νπνίνο δείρλεη πόζν

Διαβάστε περισσότερα

DOM. Γηδάζθνληεο: Π. Αγγειάηνο, Γ. Εήλδξνο Δπηκέιεηα δηαθαλεηώλ: Π. Αγγειάηνο. Σρνιή Ζιεθηξνιόγωλ Μεραληθώλ θαη Μεραληθώλ Υπνινγηζηώλ

DOM. Γηδάζθνληεο: Π. Αγγειάηνο, Γ. Εήλδξνο Δπηκέιεηα δηαθαλεηώλ: Π. Αγγειάηνο. Σρνιή Ζιεθηξνιόγωλ Μεραληθώλ θαη Μεραληθώλ Υπνινγηζηώλ DOM Γηδάζθνληεο: Π. Αγγειάηνο, Γ. Εήλδξνο Δπηκέιεηα δηαθαλεηώλ: Π. Αγγειάηνο Σρνιή Ζιεθηξνιόγωλ Μεραληθώλ θαη Μεραληθώλ Υπνινγηζηώλ Σηόρνο ηεο ώξαο Δμνηθείωζε κε ην DOM Γέληξν DOM: Γηάζρηζε Τξνπνπνίεζε

Διαβάστε περισσότερα

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα 10000 παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο 30000.

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα 10000 παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο 30000. ΔΕΟ 13 Ποσοτικές Μέθοδοι Σσνάρηηζη Κόζηοσς C(), μέζο κόζηος C()/. Παράδειγμα 1 Μηα εηαηξεία δαπαλά γηα θάζε πξντόλ Α πνπ παξάγεη 0.0 λ.κ. Τα πάγηα έμνδα ηεο εηαηξείαο είλαη 800 λ.κ. Ζεηείηαη 1) Να πεξηγξάςεηε

Διαβάστε περισσότερα

Άσκηση 1 - Μοπυοποίηση Κειμένου

Άσκηση 1 - Μοπυοποίηση Κειμένου Άσκηση 1 - Μοπυοποίηση Κειμένου Σηηο παξαθάησ γξακκέο εθαξκόζηε ηε κνξθνπνίεζε πνπ πεξηγξάθνπλ Γξακκή κε έληνλε γξαθή Γξακκή κε πιάγηα γξαθή Γξακκή κε ππνγξακκηζκέλε γξαθή Γξακκή κε Arial Font κεγέζνπο

Διαβάστε περισσότερα

"Εθαξκνγέο Δηαδηθηύνπ"

Εθαξκνγέο Δηαδηθηύνπ "Εθαξκνγέο Δηαδηθηύνπ" Σελάξηα - Javascript - PHP http://www.elizabethcastro.com/html5ed/examples/#c18 http://www.elizabethcastro.com/html5ed/examples/#c19 Ισάλληλα 2008 Ι. Παπαδόπνπινο 1 είλαη κηθξά πξνγξάκκαηα

Διαβάστε περισσότερα

ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KARNAUGH

ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KARNAUGH ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KRNUGH Γηα λα θάλνπκε απινπνίεζε κηαο ινγηθήο ζπλάξηεζεο κε πίλαθα (ή ράξηε) Karnaugh αθνινπζνύκε ηα παξαθάησ βήκαηα:. Η ινγηθή ζπλάξηεζε ζα πξέπεη λα είλαη ζε πιήξε

Διαβάστε περισσότερα

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν. B-Δέλδξα Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν. Δέλδξα AVL n = 2 30 = 10 9 (πεξίπνπ). 30

Διαβάστε περισσότερα

ΣΕΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΕΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ Ρέππα Μαξγαξίηα

ΣΕΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΕΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ Ρέππα Μαξγαξίηα ΣΕΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΕΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2011-12 Ρέππα Μαξγαξίηα FORMAT, UNFORMAT Format format , όποσ = a:, b: Μνξθνπνηεί, δειαδή πξνεηνηκάδεη

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΕΚΔΟΗ 8.0.0

ΕΓΧΕΙΡΙΔΙΟ ΕΚΔΟΗ 8.0.0 ΕΓΧΕΙΡΙΔΙΟ ΕΚΔΟΗ 8.0.0 Γενικά Η έθδνζε 8.0.0 ηνπ ελόηεηεο: Business ERP, πεξηιακβάλεη λέεο ιεηηνπξγίεο πνπ αλαιύνληαη ζηηο παξαθάησ Γεληθόηεξε ιεηηνπξγία ηεο εθαξκνγήο Εκπνξηθή Δηαρείξηζε 7/2/2013 SingularLogic

Διαβάστε περισσότερα

Τηλζφωνο: 99543321 Ε-mail: savvas_email@yahoo.com Ώρες διδασκαλίας: 16:00 19:15 μμ

Τηλζφωνο: 99543321 Ε-mail: savvas_email@yahoo.com Ώρες διδασκαλίας: 16:00 19:15 μμ ΠΑΙΓΑΓΩΓΙΚΟ ΙΝΣΙΣΟΤΣΟ ΚΤΠΡΟΤ Πξόγξακκα Δπηκόξθσζεο Τπνςεθίσλ Καζεγεηώλ Σερλνινγίαο Γελάξεο 2011 ΗΛΔΚΣΡΟΝΙΚΑ Ι (Ύιε Γπκλαζίνπ) Διδάσκων: Σαββίδης Σάββας Τηλζφωνο: 99543321 Ε-mail: savvas_email@yahoo.com

Διαβάστε περισσότερα

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε. ΑΝΟΙΓΜΑ ΝΔΑ ΥΡΗΗ 1. Γεκηνπξγείηε ηε λέα ρξήζε από ηελ επηινγή «Παξάκεηξνη/Παξάκεηξνη Δηαηξίαο/Γηαρείξηζε Δηαηξηώλ». Πιεθηξνινγείηε ηνλ θσδηθό ηεο εηαηξίαο ζαο θαη παηάηε Enter. Σηελ έλδεημε «Υξήζεηο» παηάηε

Διαβάστε περισσότερα

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο : ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ Ον/μο:.. Γ Λσκείοσ Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη. 11-1-11 Εήηημα 1 ο : Α. Γηα ηελ ζπλάξηεζε f, λα βξείηε ην δηάζηεκα ζην νπνίν είλαη παξαγσγίζηκε θαζώο θαη

Διαβάστε περισσότερα

Constructors and Destructors in C++

Constructors and Destructors in C++ Constructors and Destructors in C++ Σύνθεζη Πνιύ ζπρλά ζηε C++ κία θιάζε κπνξεί λα πεξηέρεη ζαλ κέιεδεδνκέλα αληηθείκελα άιισλ θιάζεσλ. Πνηα είλαη ε ζεηξά κε ηελ νπνία δεκηνπξγνύληαη θαη θαηαζηξέθνληαη

Διαβάστε περισσότερα

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο:

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο: Σύνθεζη ηαλανηώζεων Α. Σύλζεζε δύν α.α.η ηεο ίδιας ζστνόηηηας Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο: Η απνκάθξπλζε

Διαβάστε περισσότερα

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12 ΑΚΖΔΗ ΤΜΝΑΗΟΤ - ΚΤΚΛΟ ΠΡΩΣΟ - - ηα πνηεο ηηκέο ηνπ ηα παξαθάησ θιάζκαηα δελ νξίδνληαη ; (Τπόδεημε : έλα θιάζκα νξίδεηαη αλ ν παξνλνκαζηήο είλαη δηάθνξνο ηνπ κεδελόο) - (-) - (-) - Να απινπνηεζνύλ ηα θιάζκαηα

Διαβάστε περισσότερα

Έλαο πίνακας σσμβόλων ππνζηεξίδεη δύν βαζηθέο ιεηηνπξγίεο:

Έλαο πίνακας σσμβόλων ππνζηεξίδεη δύν βαζηθέο ιεηηνπξγίεο: Πίνακες Σσμβόλων Έλαο πίνακας σσμβόλων ππνζηεξίδεη δύν βαζηθέο ιεηηνπξγίεο: Εηζαγσγή ελόο ζηνηρείνπ Αλαδήηεζε ζηνηρείνπ κε δεδνκέλν θιεηδί Άιιεο ρξήζηκεο ιεηηνπξγίεο είλαη: Δηαγξαθή ελόο θαζνξηζκέλνπ ζηνηρείνπ

Διαβάστε περισσότερα

EL Eνωμένη στην πολυμορυία EL A8-0046/319. Τροπολογία

EL Eνωμένη στην πολυμορυία EL A8-0046/319. Τροπολογία 8.3.2016 A8-0046/319 319 Άρθρο 34 παράγραθος 1 ζηοιχείο δ (δ) 14 έηε γηα θηεληαηξηθά θάξκαθα πνπ πξννξίδνληαη γηα άιια είδε δώωλ από απηά πνπ αλαθέξνληαη ζηελ παξάγξαθν 1 ζηνηρεία α) θαη γ). (δ) 10 έηε

Διαβάστε περισσότερα

Εγκατάσταση του πακέτου XAMPP. Β Τεχνική Σχολή Λεμεςοφ Σχολική χρονιά Άριςτοσ Παςιάσ

Εγκατάσταση του πακέτου XAMPP. Β Τεχνική Σχολή Λεμεςοφ Σχολική χρονιά Άριςτοσ Παςιάσ Εγκατάσταση του πακέτου XAMPP Β Τεχνική Σχολή Λεμεςοφ Σχολική χρονιά 2017 2018 Άριςτοσ Παςιάσ Τι είναι Τν XAMPP είλαη έλα δωξεάλ πξόγξακκα γηα δηάθνξα ιεηηνπξγηθά ζπζηήκαηα πνπ δεκηνπξγεί έλα πεξηβάιινλ

Διαβάστε περισσότερα

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου ΠΡΟΒΛΗΜΑ Σε έλα ηνπξλνπά βόιετ δήισζαλ ζπκκεηνρή νκάδεο Γπκλαζίσλ ηεο Κύπξνπ.

Διαβάστε περισσότερα

Κβαντικοί Υπολογισμοί. Πέκπηε Γηάιεμε

Κβαντικοί Υπολογισμοί. Πέκπηε Γηάιεμε Κβαντικοί Υπολογισμοί Πέκπηε Γηάιεμε Kπθισκαηηθό Mνληέιν Έλαο θιαζηθόο ππνινγηζηήο απνηειείηαη από αγσγνύο θαη ινγηθέο πύιεο πνπ απνηεινύλ ηνπο επεμεξγαζηέο. Σηνπο θβαληηθνύο ε πιεξνθνξία βξίζθεηαη κέζα

Διαβάστε περισσότερα

ΗΛΕΚΤΡΟΝΙΚΗ ΜΝΗΜΗ ΚΑΙ ΜΙΚΡΟΕΛΕΓΚΤΕΣ

ΗΛΕΚΤΡΟΝΙΚΗ ΜΝΗΜΗ ΚΑΙ ΜΙΚΡΟΕΛΕΓΚΤΕΣ ΗΛΕΚΤΡΟΝΙΚΗ ΜΝΗΜΗ ΚΑΙ ΜΙΚΡΟΕΛΕΓΚΤΕΣ Η ζεκεξηλή ξαγδαία εμέιημε ηεο ηερλνινγίαο ηεο κηθξνειεθηξνληθήο επέηξεςε ηελ θαηαζθεπή εηδηθώλ νινθιεξσκέλσλ θπθισκάησλ απνζήθεπζεο δεδνκέλσλ θαη πιεξνθνξηώλ θαηαιακβάλνπλ

Διαβάστε περισσότερα

ΠΛΗ36. Άσκηση 1. Άσκηση 2. Οη δηεπζύλζεηο ησλ 4 σλ ππνδηθηύσλ είλαη νη αθόινπζεο. Υπνδίθηπν Α: 10.101.1.64/27 Υπνδίθηπν Β: 10.101.1.

ΠΛΗ36. Άσκηση 1. Άσκηση 2. Οη δηεπζύλζεηο ησλ 4 σλ ππνδηθηύσλ είλαη νη αθόινπζεο. Υπνδίθηπν Α: 10.101.1.64/27 Υπνδίθηπν Β: 10.101.1. Άσκηση 1 ΠΛΗ36 1. Η κόλε πεξίπησζε λα έρνπκε ζύγθξνπζε κεηαμύ παθέησλ ησλ δύν θόκβσλ είλαη λα ζηείιεη ν δεύηεξνο πξηλ πξνιάβεη λα πιεξνθνξεζεί γηα ηελ θαηάιεςε ηνπ δηάπινπ από ηνλ άιιν. Από ηε ζηηγκή πνπ

Διαβάστε περισσότερα

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ. Απαντήσεις θέματος 2 Απηά πνπ έπξεπε λα γξάςεηε (δελ ρξεηαδόηαλ δηθαηνιόγεζε εθηόο από ην Γ) Α return a*b; Β 0:acegf2, 1: acegf23, 2: acegf234, 3:acegf2345, 4:acegf23456, 5:acegf234567, 6:acegf2345678,

Διαβάστε περισσότερα

ΟΣΑ Επηρεηξεζηαθή Ννεκνζύλε. Ελόηεηα: Ad1.2.2 «Ση θξύβεηαη» πίζω από κηα Επηρεηξεζηαθή Αλαθνξά (report): XML & XSD γηα αξράξηνπο

ΟΣΑ Επηρεηξεζηαθή Ννεκνζύλε. Ελόηεηα: Ad1.2.2 «Ση θξύβεηαη» πίζω από κηα Επηρεηξεζηαθή Αλαθνξά (report): XML & XSD γηα αξράξηνπο ΟΣΑ Επηρεηξεζηαθή Ννεκνζύλε Ελόηεηα: Ad1.2.2 «Ση θξύβεηαη» πίζω από κηα Επηρεηξεζηαθή Αλαθνξά (report): XML & XSD γηα αξράξηνπο Πξαθηηθή Άζθεζε (επίπεδν 2): ηόρνο ηεο άζθεζεο είλαη ε πεξαηηέξω εμνηθείωζε

Διαβάστε περισσότερα

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird 1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird 1.1 Εγκαηάζηαζη ηυν οδηγών ηηρ έξςπνηρ κάπηαρ ζηο λογιζμικό Mozilla Thunderbird

Διαβάστε περισσότερα

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ Διαφάνεια 1 η ΕΚΚΙΝΗΣΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ ΚΑΙ ΕΙΣΟΔΟΣ ΣΤΟ BIOS UITILITY Τν ζπλεζέζηεξν πιήθηξν γηα ηελ είζνδν ζην BIOS Utility είλαη ην πιήθηξν Del. Παξόια απηά δηαθνξεηηθνί θαηαζθεπαζηέο, ρξεζηκνπνηνύλ δηαθνξεηηθά

Διαβάστε περισσότερα

Ειςαγωγή ςτην καταςκευή ιςτοςελίδων και ηλ. καταςτημάτων. tapostolatos@aegean.gr

Ειςαγωγή ςτην καταςκευή ιςτοςελίδων και ηλ. καταςτημάτων. tapostolatos@aegean.gr Ειςαγωγή ςτην καταςκευή ιςτοςελίδων και ηλ. καταςτημάτων tapostolatos@aegean.gr Τι είναι ηο website Σύνολο από ιζηοζελίδες σπερκειμένοσ (hypertext)...πνπ θηινμελνύληαη ζε έλα web server Έρεη μοναδική διεύθσνζη

Διαβάστε περισσότερα

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ Α ΛΤΚΔΙΟΤ Ζμεπομηνία: 18/12/10 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΕΙΝΟΜΕΝΕ ΛΤ ΕΙ 1. Δίλεηαη ην πνιπώλπκν Αλ θαη., λα βξείηε ην ηειεπηαίν ςεθίν ηνπ αξηζκνύ έρνπκε:

Διαβάστε περισσότερα

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ. Μονοψϊνιο Ολιγοψώνιο Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ. Οπιακή αξία Δπηπξόζζεηα νθέιε από ηελ ρξήζε/θαηαλάισζε κηαο επηπξόζζεηε

Διαβάστε περισσότερα

Intel Accelerate Your Code

Intel Accelerate Your Code Intel Accelerate Your Code Semester Project at Parallel & Distributed systems Dimitrios S. Tsiktsiris University of Western Macedonia Department of Informatics & Telecommunications Engineering Kozani,

Διαβάστε περισσότερα

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ: Απλό ηλεκτπικό κύκλυμα Η δηδαζθαιία ηνπ απινύ ειεθηξηθνύ θπθιώκαηνο ππάξρεη ζην κάζεκα «Φπζηθά» ηεο Ε ηάμεο ηνπ δεκνηηθνύ θαη επαλαιακβάλεηαη ζην κάζεκα ηεο Φπζηθήο ζηε Γ ηάμε ηνπ Γπκλαζίνπ.

Διαβάστε περισσότερα

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access) Έρνπκε απνζεθεύζεη κηα ζπιινγή αξρείσλ ζε κηα ζπλδεδεκέλε ιίζηα, όπνπ θάζε αξρείν έρεη κηα εηηθέηα ηαπηνπνίεζεο. Μηα εθαξκνγή παξάγεη κηα αθνινπζία από αηηήκαηα πξόζβαζεο ζηα αξρεία ηεο ιίζηαο. Γηα λα

Διαβάστε περισσότερα

ΛΙΜΝΗ ΤΣΑΝΤ. Σρήκα 1. Σρήκα 2

ΛΙΜΝΗ ΤΣΑΝΤ. Σρήκα 1. Σρήκα 2 ΛΙΜΝΗ ΤΣΑΝΤ Τν Σρήκα 1 δείρλεη ηελ αιιαγή ηεο ζηάζκεο ηεο Λίκλεο Τζαλη, ζηε Σαράξα ηεο Βόξεηαο Αθξηθήο. Η Λίκλε Τζαλη εμαθαλίζηεθε ηειείσο γύξσ ζην 20.000 π.χ., θαηά ηε δηάξθεηα ηεο ηειεπηαίαο επνρήο ησλ

Διαβάστε περισσότερα

Βιομησανικόρ ζσεδιαζμόρ πποϊόνηων από ανακςκλωμένερ ζςζκεςαζίερ

Βιομησανικόρ ζσεδιαζμόρ πποϊόνηων από ανακςκλωμένερ ζςζκεςαζίερ Βιομησανικόρ ζσεδιαζμόρ πποϊόνηων από ανακςκλωμένερ ζςζκεςαζίερ ΤΕΙ Δσηικής Μακεδονίας Τμήμα Βιομητανικού Στεδιαζμού Εργαζηήριο C 3 www.c3.teiwm.gr C 3 LAB www.c3.teiwm.gr 1 Εηζαγσγή Πεπιεσόμενα ύκβνια

Διαβάστε περισσότερα

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report.

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report. Case Study Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report. Βήκα 1 ο : Login ζηο Turnitin. Κάλεηε είζνδν ζην Turnitin κε

Διαβάστε περισσότερα

Κεθάιαην 20. Ελαχιστοποίηση του κόστους

Κεθάιαην 20. Ελαχιστοποίηση του κόστους Κεθάιαην 0 Ελαχιστοποίηση του κόστους Ειαρηζηνπνίεζε ηνπ θόζηνπο Μηα επηρείξεζε ειαρηζηνπνηεί ην θόζηνο ηεο αλ παξάγεη νπνηνδήπνηε δεδνκέλν επίπεδν πξντόληνο y 0 ζην κηθξόηεξν δπλαηό ζπλνιηθό θόζηνο. Τν

Διαβάστε περισσότερα

Οη πην γλσζηέο κνξθέο Pervasive παηρληδηώλ είλαη ηα Location Based Games, Augmented Reality Games θαη Mixed Reality Games.

Οη πην γλσζηέο κνξθέο Pervasive παηρληδηώλ είλαη ηα Location Based Games, Augmented Reality Games θαη Mixed Reality Games. Pervasive Games Pervasive games Τν ζπγθεθξηκέλν είδνο παηρληδηώλ ζηεξίδεηαη ζηελ αλάγλσζε ησλ παξακέηξσλ ηνπ πεξηβάιινληνο (Context) ηνπ ρξήζηε ησλ νπνίσλ ηα απνηειέζκαηα ρξεζηκνπνηεί ζηνπο θαλόλεο θαη

Διαβάστε περισσότερα

Κεθάλαιο 7. Πξνζθνξά ηνπ θιάδνπ Μ. ΨΥΛΛΑΚΗ

Κεθάλαιο 7. Πξνζθνξά ηνπ θιάδνπ Μ. ΨΥΛΛΑΚΗ Κεθάλαιο 7 Πξνζθνξά ηνπ θιάδνπ 1 Προζθορά ανηαγωνιζηικού κλάδοσ Πώο πξέπεη λα ζπλδπαζηνύλ νη απνθάζεηο πξνζθνξάο ησλ πνιιώλ επηκέξνπο επηρεηξήζεσλ ελόο αληαγσληζηηθνύ θιάδνπ γηα λα βξνύκε ηελ θακπύιε πξνζθνξάο

Διαβάστε περισσότερα

Σημαζιολογικός Παγκόζμιος Ιζηός. Η γιώζζα XML

Σημαζιολογικός Παγκόζμιος Ιζηός. Η γιώζζα XML Σημαζιολογικός Παγκόζμιος Ιζηός Η γιώζζα XML Ειζαγωγή (1/2) XML Γιώζζα Σήκαλζεο - Markup Language extensible Markup Language Γεκηνπξγία ηνπ W3C Μεγάιε απόδνρή θαη ελζσκάησζε κεηά ηελ εκθάληζή ηεο ζηα ηέιε

Διαβάστε περισσότερα

ΔΦΑΡΜΟΜΔΝΑ ΜΑΘΗΜΑΣΙΚΑ ΣΗ ΧΗΜΔΙΑ Ι ΘΔΜΑΣΑ Α επηέκβξηνο 2009. 1. Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(x,y) =

ΔΦΑΡΜΟΜΔΝΑ ΜΑΘΗΜΑΣΙΚΑ ΣΗ ΧΗΜΔΙΑ Ι ΘΔΜΑΣΑ Α επηέκβξηνο 2009. 1. Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(x,y) = ΘΔΜΑΣΑ Α επηέκβξηνο 9. Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(,y) = y.. Να ππνινγηζηνύλ ηα νινθιεξώκαηα: a) ln b) a) 3cos b) e sin 4. Να ππνινγηζηεί ην νινθιήξσκα: S ( y) 3

Διαβάστε περισσότερα

ΜΗΧΑΝΟΛΟΓΙΚΟ ΣΧΔΓΙΟ ΙΙ

ΜΗΧΑΝΟΛΟΓΙΚΟ ΣΧΔΓΙΟ ΙΙ 1 Σ. Δ. Ι. ΓΤ Σ Ι Κ Η Μ Α Κ Δ Γ Ο Ν Ι Α ΥΟΛΗ ΣΔΥΝΟΛΟΓΙΚΩΝ ΔΦΑΡΜΟΓΩΝ Σ Μ Η Μ Α Μ Η Υ Α Ν ΟΛΟ Γ Ι Α Δξγαζηήξην Μεραλνπξγηθώλ Καηεξγαζηώλ & CAD ΜΗΧΑΝΟΛΟΓΙΚΟ ΣΧΔΓΙΟ ΙΙ ΜΑΘΗΜΑ 2: Πνηόηεηα Δπηθάλεηαο Γξ. Βαξύηεο

Διαβάστε περισσότερα

Διαδικαζία μεηαθοράς δεδομένων Εκκαθαριζηικής για ηο Eιδικό ζημείωμα περαίωζης Φ.Π.Α

Διαδικαζία μεηαθοράς δεδομένων Εκκαθαριζηικής για ηο Eιδικό ζημείωμα περαίωζης Φ.Π.Α Διαδικαζία μεηαθοράς δεδομένων Εκκαθαριζηικής για ηο Eιδικό ζημείωμα περαίωζης Φ.Π.Α Σει.1 Σο ζςγκεκπιμένο εγσειπίδιο δημιοςπγήθηκε για να βοηθήζει ηην καηανόηζη ηηρ διαδικαζίαρ μεηαθοπάρ δεδομένων ηηρ

Διαβάστε περισσότερα

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ Εδώ ζα ππνινγίζνπκε ην κεηαζρεκαηηζκό Fourier κεξηθώλ αθόκα ζεκάησλ, πξνζπαζώληαο λα μεθηλήζνπκε από ην κεηαζρεκαηηζκό Fourier γλσζηώλ ζεκάησλ

Διαβάστε περισσότερα

Παλεπηζηήκην Θεζζαιίαο. Πνιπηερληθή Σρνιή. Τκήκα Μεραληθώλ Η/Υ, Τειεπηθνηλσληώλ & Δηθηύσλ. [ www.inf.uth.gr ]

Παλεπηζηήκην Θεζζαιίαο. Πνιπηερληθή Σρνιή. Τκήκα Μεραληθώλ Η/Υ, Τειεπηθνηλσληώλ & Δηθηύσλ. [ www.inf.uth.gr ] Παλεπηζηήκην Θεζζαιίαο Πνιπηερληθή Σρνιή Τκήκα Μεραληθώλ Η/Υ, Τειεπηθνηλσληώλ & Δηθηύσλ [ www.inf.uth.gr ] 1 ΜΑΘΗΜΑ ΕΠΙΛΟΓΗΣ ΗΥ312 (ΔΙΔΑΚΣΙΚΗ ΣΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι) ΜΕΛΗ ΟΜΑΔΑΣ Θ: Αλιμήζηρ Χπήζηορ Βεπούληρ

Διαβάστε περισσότερα

ΒΑΗ ΓΔΓΟΜΔΝΩΝ ΓΙΑΥΔΙΡΙΗ ΑΠΟΘΗΚΗ, ΠΔΛΑΣΟΛΟΓΙΟΤ, ΠΡΟΩΠΙΚΟΤ & ΡΑΝΣΔΒΟΤ ΓΙΑ ΚΟΜΜΩΣΗΡΙΑ

ΒΑΗ ΓΔΓΟΜΔΝΩΝ ΓΙΑΥΔΙΡΙΗ ΑΠΟΘΗΚΗ, ΠΔΛΑΣΟΛΟΓΙΟΤ, ΠΡΟΩΠΙΚΟΤ & ΡΑΝΣΔΒΟΤ ΓΙΑ ΚΟΜΜΩΣΗΡΙΑ HairDresser's ΒΑΗ ΓΔΓΟΜΔΝΩΝ ΓΙΑΥΔΙΡΙΗ ΑΠΟΘΗΚΗ, ΠΔΛΑΣΟΛΟΓΙΟΤ, ΠΡΟΩΠΙΚΟΤ & ΡΑΝΣΔΒΟΤ ΓΙΑ ΚΟΜΜΩΣΗΡΙΑ Σν HairDresser s (πιήξεο έθδνζε) είλαη κηα βάζε δεδνκέλσλ γηα ηε δηαρείξηζε ηεο απνζήθεο, ηνπ πειαηνινγίνπ,

Διαβάστε περισσότερα

Καθαβηάο 20 173 42 - Αγ. Δεκήηξηνο - Αζήλα Τει. 210-9821788 Φαμ 210-9821789

Καθαβηάο 20 173 42 - Αγ. Δεκήηξηνο - Αζήλα Τει. 210-9821788 Φαμ 210-9821789 Καθαβηάο 20 173 42 - Αγ. Δεκήηξηνο - Αζήλα Τει. 210-9821788 Φαμ 210-9821789 Web site : www.versus-software.gr software.gr Email : info@versus-software.gr software.gr Versus Software AdDesk v7.0 Πξόθεηηαη

Διαβάστε περισσότερα

Η Γλώςςα κωδικοποίηςησ HTML Φύλλο Εργαςίασ 6

Η Γλώςςα κωδικοποίηςησ HTML Φύλλο Εργαςίασ 6 Θέκα: Οξγάλωζε ηνπ πεξηερνκέλνπ ζε ιίζηεο Ηκεξνκελία:... /... / 2017 Όλνκα καζεηή/ηξηαο:... Τκήκα:... Σηόρνη : Σην ηέινο ηνπ θύιινπ εξγαζίαο ζα πξέπεη λα κπνξείηε λα: 1. Φξεζηκνπνηείηε ιίζηεο γηα ηελ νξγάλσζε

Διαβάστε περισσότερα

Γίθησα ποσ παρέτοληαη από τρήζηες: Κίλεηρα, ηετλοιογίες θαη αλοητηά δεηήκαηα Λεσηέρες Μακάηας (lmamatas@ee.ucl.ac.uk)

Γίθησα ποσ παρέτοληαη από τρήζηες: Κίλεηρα, ηετλοιογίες θαη αλοητηά δεηήκαηα Λεσηέρες Μακάηας (lmamatas@ee.ucl.ac.uk) Σεκηλάξην Τνκέα Λνγηζκηθνύ Γίθησα ποσ παρέτοληαη από τρήζηες: Κίλεηρα, ηετλοιογίες θαη αλοητηά δεηήκαηα Λεσηέρες Μακάηας (lmamatas@ee.ucl.ac.uk) Περίιευε παροσζίαζες Τη είλαη ηα «Γίθηπα πνπ παξέρνληαη

Διαβάστε περισσότερα

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα Κοιμωμικά δίκτυα (multiplex network) Έρεηε ινγαξηαζκό ζην Facebook? Έρεηε ινγαξηαζκό ζην LinkedIn? Έρεηε ινγαξηαζκό ζην Twitter? Αεροπορικές γραμμές της Ευρώπης(multiplex

Διαβάστε περισσότερα

Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD

Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD Γηα ηε δηεπθόιπλζή ζαο θαηά ην switch-off ηεο πεξηνρήο ηεο Πεινπνλλήζνπ έρνπκε πξνζζέζεη ζηνπο ςεθηαθνύο καο δέθηεο κία λέα,

Διαβάστε περισσότερα

Η/Υ A ΤΑΞΕΩΣ ΑΕ 2010-2011. Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ

Η/Υ A ΤΑΞΕΩΣ ΑΕ 2010-2011. Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ Συστήματα Αρίθμησης Υποπλοίαρχος Ν. Πετράκος ΠΝ 1 Ειζαγωγή Τν bit είλαη ε πην βαζηθή κνλάδα κέηξεζεο. Είλαη κία θαηάζηαζε on ή off ζε έλα ςεθηαθό θύθισκα. Άιιεο θνξέο είλαη κία θαηάζηαζε high ή low voltage

Διαβάστε περισσότερα

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο.

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο. 7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Ση είλαη έλαο θαηαρσξεηήο; O θαηαρσξεηήο είλαη κηα νκάδα από flip-flop πνπ κπνξεί λα απνζεθεύζεη πξνζσξηλά ςεθηαθή πιεξνθνξία. Μπνξεί λα δηαηεξήζεη ηα δεδνκέλα ηνπ

Διαβάστε περισσότερα

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ.. ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου έλαξμεο 09.30 ιήμεο 09.45 Σην παξαθάησ ζρήκα θαίλεηαη ηκήκα ελόο πνιενδνκηθνύ ζρεδίνπ κηαο πόιεο. Οη ζθηαζκέλεο

Διαβάστε περισσότερα

Η επιζκόπηζη ηης έμμιζθης ενηολής ζηην Αλλοδαπή. Καηεξίλα Γαιαλνπνύινπ, Intellectual Property Manager, Microsoft Ειιάο Α.Ε.

Η επιζκόπηζη ηης έμμιζθης ενηολής ζηην Αλλοδαπή. Καηεξίλα Γαιαλνπνύινπ, Intellectual Property Manager, Microsoft Ειιάο Α.Ε. Η επιζκόπηζη ηης έμμιζθης ενηολής ζηην Αλλοδαπή Καηεξίλα Γαιαλνπνύινπ, Intellectual Property Manager, Microsoft Ειιάο Α.Ε. Παξάκεηξνη πξνο αμηνιόγεζε Ννκνζεηηθή ζσξάθηζε Κνηλόο Σύιινγνο Ακνηβή Καηαγγειία/Λύζε

Διαβάστε περισσότερα

ΒΗΜΑ 2. Εηζάγεηε ηνλ Κωδηθό Πξόζβαζεο πνπ ιακβάλεηε κε SMS & δειώλεηε επηζπκεηό Όλνκα Πξόζβαζεο (Username) θαη ην ζαο

ΒΗΜΑ 2. Εηζάγεηε ηνλ Κωδηθό Πξόζβαζεο πνπ ιακβάλεηε κε SMS & δειώλεηε επηζπκεηό Όλνκα Πξόζβαζεο (Username) θαη ην  ζαο Δίζνδνο ζηελ Υπεξεζία Αλ είζηε ήδε εγγεγξακκέλνο ρξήζηεο ζηελ ππεξεζία, γηα ηελ είζνδν ζαο (login) ζηελ ππεξεζία e-bill, εηζάγεηαη ην Όλνκα Φξήζηε (username) θαη ηνλ Κωδηθό Πξόζβαζεο (password) πνπ είραηε

Διαβάστε περισσότερα

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ.. ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου έλαξμεο 09.30 ιήμεο 09.45 Σην παξαθάησ ζρήκα θαίλεηαη ηκήκα ελόο πνιενδνκηθνύ ζρεδίνπ κηαο πόιεο. Οη ζθηαζκέλεο

Διαβάστε περισσότερα

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ 1.Απηόο πνπ ζα αλαγλσξηζηεί απνπζηάδεη γηα πνιύ θαηξό. 2.Δπηζηξέθεη κε πιαζηή ηαπηόηεηα ή κεηακνξθσκέλνο. 3.Απνκνλώλνληαη ηα δύν πξόζσπα 4.Άξζε κεηακόξθσζεο 5.Απνθάιπςε 6.Ακθηβνιίεο-απνδεηθηηθά

Διαβάστε περισσότερα

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη 5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη Σηα πιαίζηα ηεο πέκπηεο εξγαζηεξηαθήο άζθεζεο ζα ρξεζηκνπνηεζεί απνθιεηζηηθά ην πεξηβάιινλ αλάπηπμεο νινθιεξσκέλσλ θπθισκάησλ IDL-800 Digital

Διαβάστε περισσότερα

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη ΔΠΑΝΑΛΗΠΣΙΚΑ ΘΔΜΑΣΑ ΣΟ ΓΙΑΦΟΡΙΚΟ ΛΟΓΙΜΟ Μάρτιος 0 ΘΔΜΑ Να ππνινγίζεηε ηα όξηα: i ii lim 0 0 lim iii iv lim e 0 lim e 0 ΘΔΜΑ Γίλεηαη ε άξηηα ζπλάξηεζε '( ) ( ) γηα θάζε 0 * : R R γηα ηελ νπνία ηζρύνπλ:

Διαβάστε περισσότερα

Επαναληπτική Άσκηση - Δέντρα

Επαναληπτική Άσκηση - Δέντρα Η NovelGadgets Α.Ε. είλαη κηα πνιπεζληθή εηαηξεία πνπ δξαζηεξηνπνηείηαη ζηνλ ρώξν ηεο πιεξνθνξηθήο θαη θαηαζθεπάδεη θαηλνηνκηθέο εθαξκνγέο (gadgets) γηα ηνπο πειάηεο ηεο. Πξόζθαηα, δεκηνύξγεζε έλα λέν

Διαβάστε περισσότερα

Έθδνζε /11/2014. Νέα ιεηηνπξγηθόηεηα - Βειηηώζεηο

Έθδνζε /11/2014. Νέα ιεηηνπξγηθόηεηα - Βειηηώζεηο Έθδνζε 2.89.33 19/11/2014 Η έθδνζε 2.89.33, πεξηιακβάλεη : Βειηηώζεηο Εμαγωγή αξρείνπ XML γηα ηελ ππνβνιή ηωλ εληύπωλ Ε5, Ε8, Ε9 Αξρείν πιεξωκώλ Web Banking γηα Εζληθή Τξάπεδα Νέα επηινγή Φπζηθό Πξόζωπν

Διαβάστε περισσότερα

Image J Plugin particle tracker για παρακολούθηση της κίνησης σωματιδίων

Image J Plugin particle tracker για παρακολούθηση της κίνησης σωματιδίων Image J Plugin particle tracker για παρακολούθηση της κίνησης σωματιδίων (https://weeman.inf.ethz.ch/particletracker/) Τν Plugin particle tracker κπνξεί λα αληρλεύζεη απηόκαηα ηα ζσκαηίδηα πνπ θηλνύληαη,

Διαβάστε περισσότερα

Εηζαγσγή ζηελ επηζηήκε ησλ ππνινγηζηώλ. Λνγηζκηθό Υπνινγηζηώλ Κεθάιαην 7ν Λεηηνπξγηθά Σπζηήκαηα

Εηζαγσγή ζηελ επηζηήκε ησλ ππνινγηζηώλ. Λνγηζκηθό Υπνινγηζηώλ Κεθάιαην 7ν Λεηηνπξγηθά Σπζηήκαηα Εηζαγσγή ζηελ επηζηήκε ησλ ππνινγηζηώλ Λνγηζκηθό Υπνινγηζηώλ Κεθάιαην 7ν Λεηηνπξγηθά Σπζηήκαηα 1 Υπνινγηζηηθό Σύζηεκα 2 Λεηηνπξγηθό Σύζηεκα Απνηειεί ηε δηαζύλδεζε κεηαμύ ηνπ πιηθνύ ελόο ππνινγηζηή θαη

Διαβάστε περισσότερα

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙΜΟ Α ΛΤΚΔΙΟΤ. Ημεπομηνία: 10/12/11 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΔΙΝΟΜΔΝΔ ΛΤΔΙ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙΜΟ Α ΛΤΚΔΙΟΤ. Ημεπομηνία: 10/12/11 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΔΙΝΟΜΔΝΔ ΛΤΔΙ ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙΜΟ Α ΛΤΚΔΙΟΤ Ημεπομηνία: 10/12/11 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΔΙΝΟΜΔΝΔ ΛΤΔΙ Πρόβλημα 1: α) Να δείμεηε όηη αλ ζεηηθνί πξαγκαηηθνί αξηζκνί ηζρύεη: β) Αλ είλαη

Διαβάστε περισσότερα

Οδηγίες Ασφρματης Πρόσβασης (Wi-Fi) στο Διαδίκτυο

Οδηγίες Ασφρματης Πρόσβασης (Wi-Fi) στο Διαδίκτυο Αγαπηηοί τρήζηες, Με ταρά ζας ανακοινώνοσμε ηη κάλσυη ηφν τώρφν ηοσ κηιριακού ζσγκροηήμαηος ηης Στολής Θεηικών Επιζηημών με αζύρμαηα ζημεία πρόζβαζης ζηο διαδίκησο. Πρόζβαζη ζηην σπηρεζία έτοσν όλα ηα

Διαβάστε περισσότερα

ΔΡΓΑΙΑ 1. Γιαδικησακά πληροθοριακά σζηήμαηα. Ομάδα Δργαζίας: Μεηαπηστιακοί Φοιηηηές. ηέθανος Κονηοβάς ΑΔΜ :283. Πάζτος Βαζίλειος ΑΔΜ :288

ΔΡΓΑΙΑ 1. Γιαδικησακά πληροθοριακά σζηήμαηα. Ομάδα Δργαζίας: Μεηαπηστιακοί Φοιηηηές. ηέθανος Κονηοβάς ΑΔΜ :283. Πάζτος Βαζίλειος ΑΔΜ :288 ΔΡΓΑΙΑ 1 Γιαδικησακά πληροθοριακά σζηήμαηα Ομάδα Δργαζίας: Μεηαπηστιακοί Φοιηηηές ηέθανος Κονηοβάς ΑΔΜ :283 Πάζτος Βαζίλειος ΑΔΜ :288 1.Γιάγραμμα Ονηολογίας. Σην παξαπάλω δηάγξακκα θαίλεηαη ε δηάξζξωζε

Διαβάστε περισσότερα

Αντισταθμιστική ανάλυση

Αντισταθμιστική ανάλυση Θεσξήζηε έλαλ αιγόξηζκν Α πνπ ρξεζηκνπνηεί κηα δνκή δεδνκέλσλ Γ : Καηά ηε δηάξθεηα εθηέιεζεο ηνπ Α ε Γ πξαγκαηνπνηεί κία αθνινπζία από πξάμεηο. Παξάδεηγκα: Θπκεζείηε ην πξόβιεκα ηεο εύξεζεο-έλσζεο Δίρακε

Διαβάστε περισσότερα

ύζηεκα Ωξνκέηξεζεο Πξνζσπηθνύ (Έθδνζε 2) ΤΠΗΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΤΣΗΜΑΣΩΝ

ύζηεκα Ωξνκέηξεζεο Πξνζσπηθνύ (Έθδνζε 2) ΤΠΗΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΤΣΗΜΑΣΩΝ ύζηεκα Ωξνκέηξεζεο Πξνζσπηθνύ (Έθδνζε 2) ΤΠΗΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΤΣΗΜΑΣΩΝ Πεξηερόκελα Σερληθά Υαξαθηεξηζηηθά Καηαγξαθή Ώξαο πγρξνληζκόο πζηήκαηνο Παξνπζίαζε πζηήκαηνο Πηζαλά ελάξηα Υξήζεο 2 Σερληθά Υαξαθηεξηζηηθά

Διαβάστε περισσότερα

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ ΚΕΦ..3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ Οπιζμόρ απόλςηηρ ηιμήρ: Σηνλ άμνλα ησλ πξαγκαηηθώλ αξηζκώλ ζεσξνύκε έλαλ αξηζκό α πνπ ζπκβνιίδεηαη κε ην ζεκείν Α. Η απόζηαζε ηνπ ζεκείνπ Α από ηελ αξρή Ο, δειαδή

Διαβάστε περισσότερα

ΑΓΩΜΘΡΘΙΞΘ ΤΩΠΞΘ ΡΘΡ ΛΘΙΠΕΡ ΗΚΘΙΘΕΡ ΛΘΤΑΗΚΘΔΗΡ Τ.

ΑΓΩΜΘΡΘΙΞΘ ΤΩΠΞΘ ΡΘΡ ΛΘΙΠΕΡ ΗΚΘΙΘΕΡ ΛΘΤΑΗΚΘΔΗΡ Τ. ΑΓΩΜΘΡΘΙΞΘ ΤΩΠΞΘ ΡΘΡ ΛΘΙΠΕΡ ΗΚΘΙΘΕΡ ΟΑIΤΜΘΔΘ ΡΕ ΛΕΓΑΚΞ ΓΗΟΕΔΞ 11V11 ΗΚΘΙΘΑ 6-10 ΤΠΞΜΩΜ ΛΕΘΞΜΕΙΗΛΑΑ ΞΣ ΟΑΘΤΜΘΔΘΞΣ ΡΕ ΛΕΓΑΚΞ ΓΗΟΕΔΞ ΓΘΑ ΟΑΘΙΕΡ ΗΚΘΙΘΑΡ 6-10 ΕΩΜ Η ΔΘΑΔΠΞΛΗ ΑΟΞ Η ΛΘΑ ΕΡΘΑ ΡΗΜ ΑΚΚΗ ΕΘΜΑΘ ΛΕΓΑΚΗ

Διαβάστε περισσότερα

UML (Unified Modeling Language )

UML (Unified Modeling Language ) UML (Unified Modeling Language ) Μεγάια Έξγα Λνγηζκηθνύ = επηθνηλσλία Πνιινί πξνγξακκαηηζηέο, πνιινί πειάηεο-ρξήζηεο, νη επόκελεο γεληέο, επηβάιινπλ ηε ρξήζε θνηλήο νξνινγίαο ε άιια ηερληθά έξγα ε ρξήζε

Διαβάστε περισσότερα

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο 1 ε Δξαζηεξηόηεηα Αλνίμηε ην αξρείν «Μεηαηόπηζε παξαβνιήο.ggb». Με ηε καύξε γξακκή παξηζηάλεηαη ε γξαθηθή παξάζηαζε ηεο f(x)=αx 2 πνπ ζα ηελ

Διαβάστε περισσότερα

A. Αιιάδνληαο ηε θνξά ηνπ ξεύκαηνο πνπ δηαξξέεη ηνλ αγωγό.

A. Αιιάδνληαο ηε θνξά ηνπ ξεύκαηνο πνπ δηαξξέεη ηνλ αγωγό. ΤΠΟΤΡΓΔΙΟ ΠΑΙΓΔΙΑ ΚΑΙ ΠΟΛΙΣΙΜΟΤ ΛΔΤΚΩΙΑ ΦΤΛΛΟ ΔΡΓΑΙΑ Μειέηε ηωλ παξαγόληωλ από ηνπο νπνίνπο εμαξηάηαη ε ειεθηξνκαγλεηηθή δύλακε. Τιηθά - πζθεπέο: Ηιεθηξνληθή δπγαξηά, ηξνθνδνηηθό ηάζεο, ξννζηάηεο, ακπεξόκεηξν,

Διαβάστε περισσότερα

Επωηήζειρ Σωζηού Λάθοςρ ηων πανελλαδικών εξεηάζεων Σςναπηήζειρ

Επωηήζειρ Σωζηού Λάθοςρ ηων πανελλαδικών εξεηάζεων Σςναπηήζειρ Επωηήζειρ Σωζηού Λάθοςρ ηων πνελλδικών εξεηάζεων 2-27 Σςνπηήζειρ Η γξθηθή πξάζηζε ηεο ζπλάξηεζεο f είλη ζπκκεηξηθή, σο πξνο ηνλ άμνλ, ηεο γξθηθήο πξάζηζεο ηεο f 2 Αλ f, g είλη δύν ζπλξηήζεηο κε πεδί νξηζκνύ

Διαβάστε περισσότερα

Αιγόξηζκνη Δθρώξεζε, Δίζνδνο θαη Έμνδνο ηηκώλ Γνκή αθνινπζίαο. Δηζαγσγή ζηηο Αξρέο ηεο Δπηζηήκεο ησλ Η/Υ

Αιγόξηζκνη Δθρώξεζε, Δίζνδνο θαη Έμνδνο ηηκώλ Γνκή αθνινπζίαο. Δηζαγσγή ζηηο Αξρέο ηεο Δπηζηήκεο ησλ Η/Υ Αιγόξηζκνη 2.2.7.1 Δθρώξεζε, Δίζνδνο θαη Έμνδνο ηηκώλ 2.2.7.2 Γνκή αθνινπζίαο Δηζαγσγή ζηηο Αξρέο ηεο Δπηζηήκεο ησλ Η/Υ 1 Δληνιή Δθρώξεζεο Η γεληθή κνξθή ηεο εληνιήο εθρώξεζεο είλαη: Μεηαβιεηή Έθθξαζε

Διαβάστε περισσότερα