Programowanie w Ruby

Podobne dokumenty
Wykład 05 Bazy danych

Język SQL, zajęcia nr 1

Programowanie w Ruby

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Programowanie w Ruby

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Projektowanie systemów baz danych

Relacyjne bazy danych. Podstawy SQL

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Autor: Joanna Karwowska

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Wykład 6. SQL praca z tabelami 3

Wykład 5. SQL praca z tabelami 2

Relacyjne bazy danych. Podstawy SQL

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Bazy danych. Polecenia SQL

Bazy Danych i Usługi Sieciowe

SIECI KOMPUTEROWE I BAZY DANYCH

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Wykład 8. SQL praca z tabelami 5

Bazy danych i usługi sieciowe

Zaawansowany kurs języka Python

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Podstawowe informacje o bazach danych. Technologie Informacyjne

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

NARZĘDZIA WIZUALIZACJI

Programowanie obiektowe

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Bazy danych 7. SQL podstawy

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Bazy danych 5. Samozłaczenie SQL podstawy

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

P o d s t a w y j ę z y k a S Q L

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Bazy danych. Dr inż. Paweł Kasprowski

1. Sprawdzenie ustawień konfiguracyjnych. Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables

Programowanie w Ruby

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Ref. 7 - Język SQL - polecenia DDL i DML

Database Connectivity

Struktura drzewa w MySQL. Michał Tyszczenko

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Nowe technologie baz danych

Przykładowa baza danych BIBLIOTEKA

Bazy danych 6. Klucze obce. P. F. Góra

Oracle11g: Wprowadzenie do SQL

Wykład 4. SQL praca z tabelami 1

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Oracle PL/SQL. Paweł Rajba.

Bazy danych - wykład wstępny

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

NARZĘDZIA WIZUALIZACJI

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

Wprowadzenie do JDBC z wykorzystaniem bazy H2

Post-relacyjne bazy danych

Systemy internetowe. Wykład 4 mysql. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga

PHP: bazy danych, SQL, AJAX i JSON

Bazy danych. dr inż. Arkadiusz Mirakowski

Instalacja MySQL.

15. Funkcje i procedury składowane PL/SQL

Bazy danych 4. SQL podstawy. P. F. Góra

Wykład :45 BD-1 W_3

Wykład 5: PHP: praca z bazą danych MySQL

Bazy danych i usługi sieciowe

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Programowanie obiektowe

Monika Kruk Mariusz Grabowski. Informatyka Stosowana WFiIS, AGH 13 grudzień 2006

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

Podstawy programowania III WYKŁAD 2

Programowanie obiektowe

SIECI KOMPUTEROWE I BAZY DANYCH

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować:

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.

Paweł Cieśla. Dokumentacja projektu

Programowanie w języku Java. Bazy danych SQLite w Javie

Kowalski Marcin Wrocław, dn Jaśkiewicz Kamil Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

Oracle PL/SQL. Paweł Rajba.

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

znaleźć wszystkie rekordy dotyczące adresów przy ulicy Hożej (dowolnego miasta!);

Kurs. Podstawy MySQL

a) ile wynosiła populacja najbardziej i najmniej ludnego z województw (oraz jakie były ich nazwy)

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Bazy danych 12. SQL Wyszukiwanie pełnotekstowe

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Widok Connections po utworzeniu połączenia. Obszar roboczy

Informatyka I BAZY DANYCH. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2017

Podstawowe wykorzystanie Hibernate

Transkrypt:

Programowanie w Ruby Wykład 6 Marcin Młotkowski 14 listopada 2012

Plan wykładu Trwałość obiektów Bazy danych DBM Bazy danych SQL Active records

Szeregowanie obiektów Obiekt Serializacja @tytul = 'Pan Tadeusz' @autor = 'Adam Mickiewicz' @gatunek = 'epopeja' Postać bina 0x63 0x6 0x61 0x7 0x73 0x2 0x54 0x6 0x73 0x7 0x0a 0x2 0x20 0x4 0x74 0x7 Deserializacja

Wybrane formaty zapisu YAML: YAML Ain t Markup Language format niezależny od języka format: sformatowany tekst Marshal format binarny szybki

Stosowanie Import odpowiedniego modułu require yaml

Stosowanie Import odpowiedniego modułu require yaml Przykład 1. str = YAML.dump([1, dwa, 3.0]) lista = YAML.load(str)

Stosowanie Import odpowiedniego modułu require yaml Przykład 1. str = YAML.dump([1, dwa, 3.0]) lista = YAML.load(str) Przykład 2. open(plik, w ) { f YAML.dump(obiekt, f) } obiekt = open(plik, r ) { f YAML.load(f) }

Metoda to yaml [1, dwa, 3.0].to yaml

Metoda to yaml [1, dwa, 3.0].to yaml --- -1 - dwa - 3.0

Marshal Marshal.dump Marshal.load

Plan wykładu Trwałość obiektów Bazy danych DBM Bazy danych SQL Active records

Co to takiego DBM: database manager Do przechowywania prostych danych Każda baza danych to po prostu tablica haszująca Przykład: Berkeley DB

Schemat przetwarzania Import modułu require dbm

Schemat przetwarzania Import modułu require dbm DBM.open(@dbm name) do db db[klucz] = wartosc puts db[klucz] end

Porada DBM-y można traktować jak kolekcje

Porada DBM-y można traktować jak kolekcje DBM.open(@dbm name) do db db.each { k, v puts #{k} => #{v} } end

Zapis i odczyt obiektów db[klucz] = Marshal.dump(obj) obj = Marshal.load(db[klucz])

Plan wykładu Trwałość obiektów Bazy danych DBM Bazy danych SQL Active records

Mechanizm dostępu do bazy danych DataBase Interface DBI definiuje zbiór funkcji i wyjątków jakie powinne być implementowane przez moduły do obsługi różnych baz danych

Przykład Sqlite Implementuje SQL Nie wymaga zewnętrznego serwera (osadzona baza danych) Baza jest pamiętana w jednym pliku Implementuje DBI

Połączenie z serwerem bazy danych require dbi db = DBI.connect( DBI:SQLite3:test.db ) Inny przykład: MySQL db = DBI.connect( DBI:Mysql:test:localhost, testuser, testpass )

Połączenie z serwerem bazy danych require dbi db = DBI.connect( DBI:SQLite3:test.db ) Inny przykład: MySQL db = DBI.connect( DBI:Mysql:test:localhost, testuser, testpass ) Zamknięcie połączenia db.disconnect

Operacje na otwartej bazie danych Operacje niezwracające żadnych danych Operacje zwracające listę wierszy Operacje zwracające liczbę

Operacje bez wyniku Utworzenie nowej tabeli db.do( CREATE TABLE Wyklady\ ( Nr INT NOT NULL,\ Tresc VARCHAR(40) ) )

Operacje zwracające liczbę Wstawienie wiersza do tabeli row = @db.do( INSERT INTO Wyklady\ (Nr, Tresc) VALUES (#{id}, #{t} ) ) puts Wstawiono #{row}

Wyszukiwanie Przykład 1. rows = db.execute( SELECT * FROM Wyklady ) rows.each do row puts #{row[0]}, #{row[1]} end rows.finish Przykład 2. rows = db.execute( SELECT * FROM Wyklady ) rows.each do row puts #{row[ Nr ]}, #{row[ Tresc ]} end rows.finish

Kilka drobnych przykładów db.select all( SELECT * FROM Wyklady ) do row puts #{row[0]}, #{row[1]} end db.select one( SELECT... WHERE NR=1 )

Plan wykładu Trwałość obiektów Bazy danych DBM Bazy danych SQL Active records

Dygresja: symbole Symbol identyfikator odpowiadający łańcuchowi znaków Tworzenie identyfikatorów :obiekt : obiekt

Odwzorowania obiektowo-relacyjne class Student @imie @nazw... end CREATE TABLE stud ( imie VARCHAR(30), nazw VARCHAR(40),...);

Zarządzanie odwzorowaniem O-R w Rubym ActiveRecord Zapewnia automatyczne odwzorowanie między obiektami a bazą danych Ukrywa wykorzystanie SQL Implementuje związki między tabelami Wymaga przestrzegania wielu konwencji

Użycie ActiveRecord Zadanie Zaprogramować bazę danych zawierającą dane o studentach zadaniach oddanych przez studentów

Rozwiązanie w SQL Deklaracja tabeli studs CREATE TABLE studs ( id INT(11) NOT NULL AUTO_INCREMENT, index VARCHAR (20), punkty INT, PRIMARY KEY(id)) Deklaracja tabeli studs CREATE TABLE stud_exercises ( id INT NOT NULL AUTO_INCREMENT, stud_id INT(11), zad INT, tresc TEXT, PRIMARY KEY(id))

Rozwiązanie obiektowe Deklaracja klas require activerecord class Stud < ActiveRecord::Base has many :stud exercises end class StudExercise < ActiveRecord::Base belongs to :stud end

Active record Klasa Obiekt Pole obiektu tabela wiersz tabeli kolumna

Konwencje class stud class StudExercise CREATE TABLE studs CREATE TABLE stud exercise

Tworzenie obiektów madry = Stud.create(:index => 10011101, :punkty => 0) zadanie = StudExercise.create(:stud int => madry, :zad => 2, tresc => puts 0 )

Odwołania do elementów bazy danych Pobieranie danych studs = Stud.find (:all, :conditions => index > 100011, :order => index DESC )

Odwołania do elementów bazy danych Pobieranie danych studs = Stud.find (:all, :conditions => index > 100011, :order => index DESC ) Modyfikacja danych studs.each do s s.punkty = s.punkty + 10 s.save end