Opis
Funkcje i struktury systemów baz danych oraz przegląd modeli danych. Relacyjne bazy danych. Języki zapytań do relacyjnych baz danych (algebra relacji, logika pierwszego rzędu, SQL i Datalog). Projektowanie baz danych, teoria postaci normalnych i modelowanie encja-związek. Fizyczne aspekty wykonywania zapytań i składowania danych, metody optymalizacji zapytań, przetwarzanie transakcji i rozproszone bazy danych.
drop table wypozyczenia; drop table czytelnicy; drop table ksiazki; create table ksiazki ( nr_ew integer primary key, tytul varchar(128), autor varchar(64) ); create table czytelnicy ( pesel char(11) primary key, imie varchar(64), nazwisko varchar(64) ); create table wypozyczenia ( nr_ew integer references ksiazki, pesel char(11) references czytelnicy, data_wypozyczenia date, data_zwrotu date, primary key (nr_ew,pesel,data_wypozyczenia) );
delete from wypozyczenia;
delete from ksiazki;
delete from czytelnicy;
insert into ksiazki (nr_ew,tytul,autor) values (1,'Teoria wszystkiego','J. Dziamdziak');
insert into ksiazki (nr_ew,tytul,autor) values (2,'Teoria prawie wszystkiego','J. Dziamdziak');
insert into ksiazki (nr_ew,tytul,autor) values (3,'Teoria całkowicie wszystkiego','J. Dziamdziak');
insert into ksiazki (nr_ew,tytul,autor) values (4,'Pan Tadeusz','A. Mickiewicz');
insert into ksiazki (nr_ew,tytul,autor) values (5,'Balladyna','J. Słowacki');
insert into ksiazki (nr_ew,tytul,autor) values (6,'Nieznana książka','Nieznany autor');
insert into czytelnicy (pesel,imie,nazwisko) values ('001','Jan','Kowalski');
insert into czytelnicy (pesel,imie,nazwisko) values ('002','Adam','Nowak');
insert into czytelnicy (pesel,imie,nazwisko) values ('003','Alojzy','Buczkowski');
insert into czytelnicy (pesel,imie,nazwisko) values ('004','Witold','Iksiński');
insert into czytelnicy (pesel,imie,nazwisko) values ('005','Anna','Ygregkowska');
insert into czytelnicy (pesel,imie,nazwisko) values ('006','Julia','Capuletti');
insert into czytelnicy (pesel,imie,nazwisko) values ('007','James','Bond');
insert into czytelnicy (pesel,imie,nazwisko) values ('008','Lidia','Montecchi');
insert into wypozyczenia (nr_ew,pesel,data_wypozyczenia,data_zwrotu) values
(1,'001','01-SEP-2007','15-SEP-2007');
insert into wypozyczenia (nr_ew,pesel,data_wypozyczenia,data_zwrotu) values
(1,'002','01-SEP-2006','15-SEP-2006');
insert into wypozyczenia (nr_ew,pesel,data_wypozyczenia,data_zwrotu) values
(1,'003','01-SEP-2004','15-SEP-2004');
insert into wypozyczenia (nr_ew,pesel,data_wypozyczenia,data_zwrotu) values
(1,'002','01-OCT-2007',NULL);
insert into wypozyczenia (nr_ew,pesel,data_wypozyczenia,data_zwrotu) values
(2,'005','01-SEP-2007','15-SEP-2007');
insert into wypozyczenia (nr_ew,pesel,data_wypozyczenia,data_zwrotu) values
(2,'006','04-OCT-2007',NULL);
insert into wypozyczenia (nr_ew,pesel,data_wypozyczenia,data_zwrotu) values
(2,'002',TO_DATE('2007-09-02','yyyy-mm-dd'),TO_DATE('2007-09-15','yyyy-mm-dd'));
insert into wypozyczenia (nr_ew,pesel,data_wypozyczenia,data_zwrotu) values
(3,'006',TO_DATE('2007-10-03','yyyy-mm-dd'),NULL);
insert into wypozyczenia (nr_ew,pesel,data_wypozyczenia,data_zwrotu) values
(3,'007',TO_DATE('2007-09-04','yyyy-mm-dd'),TO_DATE('2007-09-15','yyyy-mm-dd'));
insert into wypozyczenia (nr_ew,pesel,data_wypozyczenia,data_zwrotu) values
(3,'001',TO_DATE('2007-09-20','yyyy-mm-dd'),TO_DATE('2007-09-25','yyyy-mm-dd'));
insert into wypozyczenia (nr_ew,pesel,data_wypozyczenia,data_zwrotu) values
(3,'002',TO_DATE('2007-10-01','yyyy-mm-dd'),TO_DATE('2007-10-02','yyyy-mm-dd'));
insert into wypozyczenia (nr_ew,pesel,data_wypozyczenia,data_zwrotu) values
(4,'008',TO_DATE('2007-10-02','yyyy-mm-dd'),NULL);
insert into wypozyczenia (nr_ew,pesel,data_wypozyczenia,data_zwrotu) values
(4,'005',TO_DATE('2007-09-07','yyyy-mm-dd'),TO_DATE('2007-09-12','yyyy-mm-dd'));
insert into wypozyczenia (nr_ew,pesel,data_wypozyczenia,data_zwrotu) values
(4,'006',TO_DATE('2007-09-02','yyyy-mm-dd'),TO_DATE('2007-09-05','yyyy-mm-dd'));
insert into wypozyczenia (nr_ew,pesel,data_wypozyczenia,data_zwrotu) values
(5,'006',TO_DATE('2007-09-05','yyyy-mm-dd'),TO_DATE('2007-09-10','yyyy-mm-dd'));
insert into wypozyczenia (nr_ew,pesel,data_wypozyczenia,data_zwrotu) values
(5,'002',TO_DATE('2007-09-19 12:30','yyyy-mm-dd hh24:mi'),TO_DATE('2007-09-20','yyyy-mm-dd'));-- inicjalizacja pomocniczych zmiennych
set pagesize 100; set trimspool on; set trimout on; set echo on; -- wyświetlanie poleceń SQL set linesize 100;
-- ustawienie domyślnych rozmiarów kolumn
column tytul format a30; column autor format a20;
-- lista książek
SELECT nr_ew,tytul FROM ksiazki;
-- lista książek konkretnego autora
SELECT * FROM ksiazki WHERE autor LIKE 'J. Dziam%';
-- liczba wypożyczeń każdej z książek
SELECT k.tytul,count(*) as ile FROM wypozyczenia w,ksiazki k WHERE w.nr_ew=k.nr_ew GROUP BY w.nr_ew,k.tytul ORDER BY ile DESC;
-- jeszcze nie oddane książki + dane wypożyczających
SELECT TO_CHAR(w.data_wypozyczenia,'yyyy-mm-dd hh24:mi') as data_wypozyczenia,w.nr_ew,k.tytul,c.imie||' '||c.nazwisko as wypozyczajacy FROM wypozyczenia w,ksiazki k,czytelnicy c WHERE w.nr_ew=k.nr_ew AND w.pesel=c.pesel AND w.data_zwrotu IS NULL ORDER BY w.data_wypozyczenia ASC;
-- wyświetlanie dokładnego sposobu obliczania zapytania
set autotrace on; select k.tytul,w.pesel,w.data_wypozyczenia,w.data_zwrotu from wypozyczenia w,ksiazki k WHERE w.nr_ew=k.nr_ew; set autotrace off;
Przydatne adresy:
javascript:alert(”Hello, World!”);
<script type="text/javascript" src="hello.js"></script>
alert(”Hello, World!”);
<script type="text/javascript"> alert(”Hello, World!”); </script>
var foo;
var foo = ”bar”;
foo = 8;
var foo = true; var bar = false;
var dwa = 2; var trzyipol = 3.5;
var s = ”String”;
var fib = new Array(0, 1, 1, 2, 3); var fib = [0, 1, 1, 2, 3];
fib[1] = ”jeden”;
function helloWorld() {
alert("Hello, World!");
}javascript:helloWorld();
function fib(n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return fib(n-1) + fib(n-2);
}
}var twice = function(n) {
return 2 * n;
}function Osoba(imie) {
this.imie = imie;
}
var Jan = new Osoba(”Jan”);Osoba.prototype.nazwisko = ”Kowalski”; Jan = new Osoba(”Jan”); //teraz Jan.nazwisko == ”Kowalski”
Jan = { 'imię': 'Jan', 'nazwisko': 'Kowalski' }var helloWorld = function(evt) {
alert("Hello, World!");
}
document.onclick = helloWorld;document.getElementById(”id”); document.getElementsByTagname(”p”);
var div = document.createElement(”div”); div.id = ”someDiv”; div.class = ”someClass”;
document.documentElement.appendChild(div);
document.getElementById(”someDiv”).class = ”otherClass”;
document.getElementById('someDiv').style.color = 'red';div = document.getElementById(”someDiv”); document.removeChild(div);
<body></body>:<a href="http://jquery.com/">jQuery</a>
<script></script>:$(document).ready(function() {
$(”a”).click(function(event) {
alert(”Hello, jQuery!”);
event.preventDefault();
});
});$(".someClass").css("border", "red");
$("#someId").html(”Modified with jQuery”);$(”#someId > p”) - wszystkie elementy typu p, które są dziećmi elementu o Id someId
$("p[@class]") – wszystkie elementy typu p z atrybutem class
$("p.foo[a]") – wszystkie elementy typu p, klasy foo, które zawierają element typu a.$(”p.shy”).click(function() {
$(this).hide(”slow”);
});<head>
<script type="text/javascript">
function notEmpty() {
var myTextField = document.getElementById('myText');
if(myTextField.value != " ")
alert("You entered: "+ myTextField.value)
else
alert("Would you please enter some text?")
} </script>
</head>
<body>
<script type="text/javascript">
document.write("Wpisz tekst:");
</script>
<input type='text' id='myText' /> <input type='button'
onclick='notEmpty()' value='Form Checker' /> </body>function sum(numbers) {
var total = 0
forEach(numbers, function (number) {
total += number
})
return total
}
alert(sum([1, 10, 100]));Właściwości:
Metody:
var cat = {colour: "grey", name: "Spot", size: 46};
cat.speak = function(line) {
print("The cat says '", line, " " ');
}
cat.size =
yellow";
alert(cat.size);
delete cat.size;
alert(cat.size);
alert(cat.speak("Cześć"));
alert(cat);function Rabbit(adjecitve) {
this.adjective = adjective;
this.speak = function(line) {
print("The ", this.adjective, " rabbit says '", line, " " ');
};
}
var = new Rabbit("krolik");
function makeRabbit(adjective) {
return {
adjective: adjective,
speak: function(line) { tresc funkcji }
};
}
var blackRabbit = makeRabbit("black");function negate(func) {
return function(x) {
return !func(x)
};
}
var isOdd = negate(isEven);<script type="text/javascript" source="jquery.js"/>
$("#someId").html("<b>So Bold!</b>");
$(document).ready(function() {
$("a").click(function(event) {
alert("Thanks for visiting');
});
}$(document).ready(function() {
$("#orderedlist li:last").hover(function() {
$(this).addClass("green");
},function(){
$(this).removeClass("blue");
});
});$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});$.post("test.php", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});
$.get("test.php", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});$c = oci_connect("rb291513", "XXXXXX");
if($c){
echo "Jest polaczenie.<br><br>";
}else{
$err = oci_error();
echo "Oracle Connect Error " . $err['text'];
exit(0);
}$r = oci_parse($c, "SELECT * FROM wypozyczenia"); oci_execute($r); $rowCount = oci_fetch_all($r, $all, null, null, OCI_FETCHSTATEMENT_BY_ROW + OCI_ASSOC); echo "Zawartosc tabeli WYPOZYCZENIA: <br>"; echo "<pre>".print_r($all, true)."</pre>";
$var2 = "Scott";
$tab = array(2,8,19,32);
$s = oci_parse($c, "insert into tab1 values (:bind1, :bind2)");
oci_bind_by_name($s, ":bind1", $var1, 20);
oci_bind_by_name($s, ":bind2", $var2);
foreach($tab as $var1){
oci_execute($s);
}$s = oci_parse($c, "select * from tab1");
oci_execute($s);
while(oci_fetch($s)){
echo "COL1 = " . oci_result($s, "COL1") .
", COL2 = " . oci_result($s, "COL2") . "<br>";
}$s = oci_parse($c, "create or replace procedure powieksz(p1 in number, p2 out number) as
begin p2 := p1 + 1; end;");
oci_execute($s);
$p1 = 233;
$s = oci_parse($c, "begin powieksz(:x1, :x2); end;");
oci_bind_by_name($s, ":x1", $p1);
oci_bind_by_name($s, ":x2", $p2, 40);
oci_execute($s);
echo $p1 . " + 1 = " . $p2; // 233 + 1 = 234