Instrukcja laboratoryjna nr.4
|
|
- Henryka Bednarek
- 5 lat temu
- Przeglądów:
Transkrypt
1 Języki programowania na platformie.net 2017/18 Instrukcja laboratoryjna nr.4 Biblioteka NHibernate Prowadzący: Tomasz Goluch Wersja: 2.0
2 I. Biblioteka NHibernate. Cel: Instalacja biblioteki NHibernate, utworzenie nowej bazy danych SqlServer CE oraz skonfigurowanie połączenia. Aby zainstalować bibliotekę NHibernate w projekcie najlepiej wykorzystać Nugeta (komenda: Install-Package <NazwaPakietu> [-Version <WersjaBiblioteki>] [-Project <NazwaProjektu>]) np.: Uwaga w celu instalacji najnowszej wersji biblioteki (aktualnie 5.0.0) wymagany jest.net w wersji W wyniku instalacji powinniśmy otrzymać następujące referencje: Dodać nową lokalną bazę danych: Project Add NewItem (Ctrl+Shift+A) Service-based Database. Następnie należy dodać plik konfiguracyjny nhibernate.cfg.xml: <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" > <session-factory name="nhibernate.test"> <property name="connection.driver_class"> NHibernate.Driver.Sql2008ClientDriver </property> <property name="connection.connection_string"> Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename= DataDirectory \WZGLEDNA_SCIEZKA_DO_BAz Y_DANYCH.mdf;Integrated Security=True </property> <property name="dialect">nhibernate.dialect.mssql2008dialect</property> <property name="show_sql">true</property> <mapping assembly="nazwa_assembly" /> </session-factory> </hibernate-configuration> Należy zwrócić uwagę czy: element <property name="connection.connection_string"> zawiera poprawny Connection string. Można go odnaleźć we właściwościach (okienko baz danych, nie projektu) pliku *.sdf Connection string i skopiować do powyższego pliku konfiguracyjnego, element <property name="show_sql"> ustawiony na true wypisuje w oknie konsoli zapytania bazodanowe, pozwala to na obserwację mechanizmu leniwego ładowania,
3 wartość atrybutu assembly elementu mapping to nazwa podzespołu w zawierającego mapowane klasy. Właściwości Build Action i Copy to Output Directory pliku konfiguracyjnego powinny być ustawione na Content i Copy Always. Wczytanie pliku konfiguracyjnego: Configuration cfg = new Configuration(); cfg.configure(); // domyślnie hibernate.cfg.xml w innym przypadku należy podać II. Sesja. Cel: Utworzenie sesji przy użyciu fabryki. Obiekt fabryki jest obiektem ciężkim i powinniśmy tworzyć tylko jeden dla danej konfiguracji. Pozwala on na tworzenie lekkich obiektów sesji, w ramach których będą wykonywane operacje bazodanowe. W celu wymuszenia zmian w bazie danych można wykorzystać metodę Flush(). ISessionFactory sf = cfg.buildsessionfactory(); using (ISession cs = sf.opensession()) { // Tutaj umieszczamy kod cs.flush(); // Kontynuujemy po utrwaleniu zmian w bazie } sf.close(); III. Trwałe obiekty. Cel: Tworzenie klas obiektów utrwalanych w bazie danych. Każdy utrwalany obiekt to zwykły obiekt klasy jednakże powinna spełniać kilka wymagań: powinna być publiczna aby skorzystać z leniwego ładowania, posiadać publiczny bezparametrowy konstruktor (może być domyślny 1 ), 1 W przypadku zaimplementowania dowolnego konstruktora, domyślny bezparametrowy konstruktor jest niedostępny i trzeba go zaimplementować explicite.
4 właściwości klasy powinny być wirtualne (NHibernate tworzy obiekty proxy wywodząc je z naszej klasy nadpisuje właściwości, więc muszą być wirtualne) powinna istnieć właściwość, która będzie identyfikatorem obiektu (tak jak id w bazie danych 2 ) public class Klasa { public Klasa() { } public virtual int id { get; set; } public virtual string data { get; set; } } Każdej klasie trwałych obiektów odpowiada plik konfiguracyjny.<nazwa_klasy>.hbm.xml (NAZWA_KLASY musi być zgodna z rzeczywistą nazwą klasy a nie z nazwą pliku w którym jest jej definicja). <?xml version="1.0" encoding="utf-8"?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="nazwa_namespace" assembly="nazwa_assembly"> <class name="nazwa_klasy" table="nazwa_tabeli_w_bazie_danych"> <id name="id"> <generator class="native" /> </id> <property name="nazwa_property" column="nazwa_kolumny_w_bazie_danych" /> </class> </hibernate-mapping> id opisuje właściwość, która jest identyfikatorem obiektu o generator opisuje, w jaki sposób będą generowane wartości dla tworzonych elementów, poniżej omówiono tylko wybrane 3 : class="increment" generuje identyfikatory dowolnego typu integralnego (sbyte, byte, short, ushot, int, uint, ulong, char), które są unikalne tylko wtedy, gdy tylko jeden proces wstawia dane do tej tabeli, class="identity" wsparcie dla automatycznie generowanych wartości kolumny w DB2, MySQL, MS SQL Server, Sybase i HypersonicSQL (np. AUTO_INCREMENT w MySQL). Zwracany identyfikator jest konwertowany za pomocą Convert.ChangeType do właściwości dowolnego typu integralnego, class="sequence" generuje niepowtarzalną wartość wykorzystując konstrukcję SEQUENCE dostępną w bazach danych DB2, Interbase, Oracle, PostgreSQL i SAP DB. Konwersja identyfikatora identycznie jak w przypadku identity. 2 Dla NHibernate, dwa obiekty o tym samym identyfikatorze to te same id. W większości sytuacji biblioteka będzie nam gwarantowała, że jeżeli id dwóch obiektów jest takie samo, to jest to ten sam obiekt w pamięci. 3 Więcej informacji o sposobach generowania kluczy przez NHibernate można znaleźć tutaj: i tutaj:
5 class="hilo" wykorzystuje algorytm Hi/Lo do wydajnego generowania identyfikatorów dowolnego typu integralnego, class="native" identity, sequence albo hilo w zależności który sposób jest najbardziej natywny dla danej bazy danych. class="guid" wykorzystywany jest typ System.Guid class="guid.comb" jak powyżej tylko do generowania kluczy wykorzystywany jest algorytm opisany tutaj. property opisują właściwości klasy, zawierają między innymi takie atrybuty jak: o name odpowiada nazwie właściwości w klasie, o column (opcjonalny) odpowiada nazwie kolumny w bazie, domyślnie kolumna przyjmie nazwę właściwości, o type (opcjonalny) typ identyfikatora podany explicite. Lista dostępnych typów jest dostępna tutaj: Właściwość Build Action należy ustawić na Embbeded Resource ponieważ NHibernate przegląda osadzone zasoby w poszukiwaniu plików *.hbm.xml i pobiera z nich opisy obiektów. NHibernate jest w stanie zapamiętać, bez dodatkowego wysiłku z naszej strony, wszystko, co jest serializowalne (ISerializable) byle był w stanie przełożyć to na zawartość kolumny w bazie (dla ISerializable potrzebna jest kolumna typu varbinary/blob/itp.). W celu automatycznej weryfikacji składni plików konfiguracyjnych możemy podać VS ich definicje. W tym celu należy kliknąć na odpowiednim pliku.xml i we właściwościach podać dla właściwości Schemas ścieżkę do odpowiedniego pliku.xsd znajdującego się w głównym katalogu NHibernate. Dla pliku konfiguracji NHibernate jest to nhibernate-configuration.xsd a dla plików mapowania nhibernate-mapping.xsd.
6 Tabele można utworzyć ręcznie (wtedy trzeba pamiętać o zgodności tabeli z opisem), gdy nie podamy parametru column, to kolumna musi nazywać się tak samo jak właściwość. Typy kolumn powinny być zgodne z typami properties w rozsądnym zakresie, biblioteka jest w stanie przechowywać np. liczbę w kolumnie typu varchar, ale w drugą stronę sobie nie poradzi. Automatyczne tworzenie/aktualizacja tabel: new SchemaExport(cfg).Execute(false, true, false); cfg obiekt konfiguracji (musi być skonfigurowany) pierwszy parametr czy wyświetlać na konsolę utworzony opis (create-y), drugi parametr czy rzeczywiście wykonać ddl na bazie, trzeci parametr jeżeli true, to będą wykonane tylko drop-y (usunięcie tabel, bez tworzenia), np. false, true, false utwórz na nowo wszystkie tabele, np. false, true, true tylko usuń tabele (np. po wykonaniu testów), np. true, false, false wyświetl, to co byłoby zrobione, ale nic nie wykonuj, uwaga! stare dane zostaną usunięte. new SchemaUpdate(cfg).Execute(false, true); parametry, poza ostatnim, identyczne jak w przypadku SchemaExport. Trwały obiekt może znajdować się w jednym z trzech stanów: przejściowy nie ma przydzielonego trwałego identyfikatora (np. zaraz po utworzeniu obiektu, kiedy nie został jeszcze zapisany w bazie), trwały ma trwały identyfikator i może być już powiązany z wierszem w bazie danych; przypisany jest do istniejącej, otwartej sesji; w tym stanie gwarantowane jest, że jeżeli dwa obiekty mają takie samo id, to jest to ten sam obiekt w pamięci ; w tym stanie operacje na obiekcie będą automagicznie utrwalane w bazie danych, odłączony ma przypisany trwały identyfikator i być może wiersz w bazie, ale sesja w której istniał została zamknięta lub obiekt został przeserializowany do innego procesu; nie mamy gwarancji z drugiego punktu. Utworzenie obiektu: tak, jak wszystkie obiekty: new NazwaKlasy() (obiekt w stanie przejściowym) PersistClass pc = new PersistClass(); Zapisanie w bazie (obiekt staje się trwały): currentsession.save(obiekt) currentsession.save(obiekt, id_dla_niego) (jeżeli id jest assigned i jeszcze nie przypisaliśmy go do obiektu) cs.save(pc); cs.save(pc, 1); Odczytanie obiektu z bazy: currentsession.get<typ>(id_obiektu_do_odczytania)
7 PersistClass pc2 = cs.get<persistclass>(1); jeżeli obiekt nie istnieje w bazie, zostanie zwrócone null jeżeli obiekt był już wcześniej odczytany, otrzymamy referencję na niego: PersistClass pc = new PersistClass(); cs.save(pc, 1); PersistClass pc2 = cs.get<persistclass>(0); Console.WriteLine(pc.Equals(pc2)); // "true" - pc2 wskazuje na ten sam obiekt co pc usunięcie: cs.delete(pc); // obiekt, nie jego id! aktualizacja: cs.save(pc); cs.update(pc); Transakcje: mechanizm jak w SQL ITransaction t = null; t = cs.begintransaction(); możemy też jawnie zdefiniować poziom izolacji transakcji: t = cs.begintransaction(system.data.isolationlevel.<isolationlevel>) zatwierdzenie/odwołanie transakcji: t.commit(); t.rollback(); IV. Zawieranie obiektów i kolekcji Cel: Utrwalanie złożonych obiektów i kolekcji oraz wykorzystanie funkcji leniwego ładowania.. Obiekty mogą zawierać inne obiekty, a dokładnie referencje do niech. Jest to reprezentowane w bazie danych przy pomocy relacji jeden do wielu, oraz w pliku mapującym przy pomocy odpowiedniego elementu many-to-one: <many-to-one name="nazwa_obiektu_zawieranej_klasy" column="nazwa_tabeli_zawieranej_klasy" cascade="all" /> atrybuty jak w przypadku elementu property, atrybut cascade opisuje operacje na powiązanych obiektach: o all zapisuje/aktualizuje/usuwa obiekt bieżący i te, na które ma referencje, o save-update po referencjach przenoszą się tylko operacje save i update, o delete tylko operacje usuwania,
8 o none żadne operacje. np. dla kodu: PersistClass pc = new PersistClass(); pc.ac = new AggregatedClass(); cs.save(pc); dla cascade="none" lub "delete" utrwalona zostanie tylko klasa pc (pc.ac musimy utrwalić sami). W pozostałych przypadkach zostanie zapisane w bazie zarówno pc jak i pc.ac. Jeżeli ręcznie tworzymy bazę, należy dodać kolumnę, która będzie przechowywała identyfikator obiektu, na który trzymamy referencję (agregowanego). W celu zaobserwowania obserwacja leniwego ładowania należy: w pliku konfiguracyjnym ustawić: <property name="show_sql">true</property>. utworzyć obiekt A i B, powiązany z nim (A ma referencję na B) w nowej sesji (np. nowe uruchomienie programu): odczytać z bazy A, wypisać zawartość pól (innych niż referencja) wypisać zawartość pól obiektu, do którego mamy referencję obiekt B zostanie odczytany z bazy dopiero wówczas, gdy będziemy próbowali wypisać jego pola (dopiero przed drugim wypisaniem); do tego czasu B istnieje jako proxy. V. Dziedziczenie. Cel: Realizacja paradygmatu mechanizmu dziedziczenia przy pomocy NHibernate.. Sposoby realizacji dziedziczenia: model tabela na klasę: o cała klasa i jej potomne przechowywane są w jednej tabeli. Klasy rozróżniane są po discriminator-value, króra przechowywana jest w osobnej kolumnie, o kolumny nie mogą mieć ograniczenia not null, o tabela powinna posiadać kolumny dla wszystkich podklas, <class name="ipayment" table="payment"> <id name="id" type="int64" column="payment_id"> <generator class="native"/> </id> <discriminator column="payment_type" type="string"/> <property name="amount" column="amount"/> <subclass name="creditcardpayment" discriminator-value="credit"> </subclass> <subclass name="cashpayment" discriminator-value="cash"> </subclass> <subclass name="chequepayment" discriminator-value="cheque"> </subclass> </class>
9 model tabela na podklasę: o pola, o które klasa bazowa jest rozszerzona przechowywane są w osobnej tabeli, o tabela ta zawiera dodatkowe pole identyfikator obiektu bazowego, o obiekt klasy potomnej przechowywany jest częściowo w tabeli bazowej (pola klasy bazowej), a częściowo w dodatkowej tabeli; identyfikator wiąże oba wiersze, <class name="ipayment" table="payment"> <id name="id" type="int64" column="payment_id"> <generator class="native"/> </id> <property name="amount" column="amount"/> <joined-subclass name="creditcardpayment" table="credit_payment"> <key column="payment_id"/> </joined-subclass> <joined-subclass name="cashpayment" table="cash_payment"> <key column="payment_id"/> </joined-subclass> <joined-subclass name="chequepayment" table="cheque_payment"> <key column="payment_id"/> </joined-subclass> </class> model tabela na konkretną klasę: o każda klasa posiada swoją tabelę, o każda tabela musi zawierać wszystkie swoje właściwości, o kolumny przechowujące pola klasy bazowej muszą nazywać się tak samo we wszystkich tabelach. <class name="payment"> <id name="id" type="int64" column="payment_id"> <generator class="sequence"/> </id> <property name="amount" column="amount"/> <union-subclass name="creditcardpayment" table="credit_payment"> <property name="creditcardtype" column="cctype"/> </union-subclass> <union-subclass name="cashpayment" table="cash_payment"> </union-subclass> <union-subclass name="chequepayment" table="cheque_payment"> </union-subclass> </class>
10 VI. Kolekcje Cel: Utrwalanie kolekcji.. NHibernate pozwala na utrwalanie całych kolekcji. Aktualnie wspierane są tylko kolekcje generyczne. Dostępne są różne elementy set, list, map, bag, array, primitive-array odpowiadające odpowiednim kolekcjom.net. Mapowanie wymaga zachowania pewnych reguł: pola w klasie powinny być typu interfejsowego ( IList, ISet, IDictionary, IDictionary<>, itp.) obiekty powinny być utworzone w konstruktorze: public PersistClass() { IntSet = new HashSet<int>(); } public virtual ISet<int> IntSet { get; set; } lub jako wartość początkowa: public virtual ISet<int> IntSet { get; set; } = new HashSet<int>(); NHibernate podczas zapisywania podmienia zawartość pola na swoją implementację, więc nie będzie poprawne wywołanie: HashSet s = klasa.dane; kolekcje poza ISet<int> posiadają indeks liczbę typu Int32 lub dowolnego typu (w przypadku słowników). Należy to uwzględnić ręcznie tworząc tabele. Kolekcja przechowywana jest w osobnej tabeli, której kolumny zawierają: o daną o indeks (poza ISet<int>) o klucz/identyfikator obiektu, do którego należą Mapowanie listy typów prostych: <list name="nazwa_property" table="nazwa_tabeli" > <key column = "KOLUMNA_KLUCZY"/> <index column="kolumna_indeksów"/> <element column="kolumna_danych" type="typ_danych "/> </list> Mapowanie zbioru typów złożonych: <set name="nazwa_property" table="nazwa_tabeli" > <key column = "KOLUMNA_KLUCZY"/> <one-to-many class = "NAZWA_KLASY"/> </set> Słownik IDictionary<string, int>: public virtual IDictionary<string, int> DataDict { get; set; } = new Dictionary<string, int>(); <map name="nazwa_property " table="nazwa_tabeli"> <key column="kolumna_kluczy" /> <index column=" KOLUMNA_INDEKSÓW" type="string" /> <element column="kolumna_danych" type="int32" />
11 </map> NAZWA_PROPERTY nazwa wirtualnej właściwości w klasie reprezentującej kolekcję.net, NAZWA_TABELI nazwa tabeli, w której będą przechowywane dane kolekcji, KOLUMNA_KLUCZY nazwa kolumny w tabeli NAZWA_TABELI, przechowującej identyfikator obiektu, do którego wiersz należy, KOLUMNA_INDEKSÓW nazwa kolumny w tabeli NAZWA_TABELI, przechowującej indeks wartości kolekcji indeksowanych takich jak list i map (dla węzłów innych niż map typ powinien być Int32), KOLUMNA_DANYCH to nazwa kolumny w tabeli NAZWA_TABELI, przechowującej daną przypisaną do klucza W przypadku słowników jeżeli indeks jest obiektem, zamiast elementu index należy użyć elementu index-many-to-many, jeżeli wartość jest obiektem, zamiast elementu element należy użyć elementu many-to-one. VII. Zapytania HQL 4. Cel: Zapoznanie z językiem zapytań Hibernate Query Language. HQL jest językiem zapytań podobnym do SQL, obsługuje większość konstrukcji z SQL, jednak jest to język w pełni obiektowy i rozumie takie pojęcia jak dziedziczenie, polimorfizm i asocjacja. Jest case insensitive oprócz nazw klas i właściwości które muszą być pisane z uwzględnieniem wielkości liter. IQuery q = cs.createquery("from PersistClass k"); // Klasa: nazwa TYPU! //IEnumerable<PersistClass> data = q.enumerable<persistclass>(); //IList<PersistClass> data = q.list<persistclass>(); ICollection<PersistClass> data = q.list<persistclass>(); foreach (PersistClass v in data) Console.WriteLine("PersistClass({0},\"{1}\")", v.id, v.data); Parametrem do CreateQuery jest zapytanie w języku HQL. HQL to taki SQL, w którym zamiast nazw tabel i kolumn mamy typy (klasy) i ich pola, np.: "from Klasa k where k.id < 10" select * można pominąć Konstrukcje: FROM Namespace.Class from Class c alias From Class as c j.w. from A, B iloczyn kartezjański lub "cross" join from A as a, B as b j.w inner join 4 Więcej szczegółowych informacji o składni HQL można znaleźć tutaj:
12 left outer join right outer join where a.data = b. Data warunki (nazwy pól klas a nie kolumn!) where a.data like 'a_%_%' % - zero lub więcej znaków, _ - jeden znak is null is not null between A and B in ( Foo, Bar, Baz ) select from wybrane pola z klasy, wartością elementami kolekcji będą: o jeżeli wybieramy tylko jedno pole obiekty typu tego pola, o jeżeli wybieramy kilka poł będą siedzieć w tabeli obiektów. IList<object[]> datatab = cs.createquery("select id, data from PersistClass pk").list<object[]>();int id = (int)datatab[0][0]; string data = (string)datatab[0][1]; parametry zapytania: o pozycyjne:? ("where k.id=?") o nazwane: :nazwa (dwukropek nazwa) ("where dana=:param") IQuery::SetString/SetInt32/SetParameter/Set(nazwa_lub_numer, obiekt) o nazwa_lub_numer to numer parametru pozycyjnego (liczba, licząc od 0) lub nazwa parametru nazwanego (string) o obiekt wartość do nadania parametrowi IQuery::SetFirstResult(numer) numer pierwszego zwróconego wiersza IQuery::SetMaxResults(liczba) ustawienie maksymalnej liczby zwróconych wierszy Wykorzystanie kolekcji w HQL: "from Klasa k where k[ klucz ] = 5" VIII. Zapytania SQL 5. Cel: Zapoznanie z wykorzystaniem natywnego języka zapytań SQL w NHibernate. Realizacja zapytań SQL jest kontrolowana przez interfejs ISQLQuery, który jest uzyskiwany przez wywołanie metody ISession.CreateSQLQuery(), której parametrem jest zapytanie w SQL. Wynik zapytania należy opisać: ISQLQuery::AddScalar(nazwa, typ) nazwa alias kolumny wyniku (string) typ typ wyniku (NHibernateUtil.[String Int32 itd.]) ISQLQuery::List() (nie ma enumerable): IList l = query.list() 5 Więcej o Native SQL dla NHibernate tutaj:
13 wynik lista obiektów (jeżeli pojedyncza kolumna) lub lista tablic obiektów (jak przy zapytaniach HQL) jeżeli chcemy otrzymać obiekty "SELECT {t.*} from tabela t": o tabela nazwa tabeli, w której przechowywane są obiekty o {t.*} oznacza wszystkie pola klasy z indywidualnymi polami jest problem trzeba odpowiednio aliasować kolumny, tworzyć dodatkowe opisujące typ itp. spojrzeć na rzeczywiste zapytanie (<property name="show_sql">true</property>) ISQLQuery sq = cs.createsqlquery("select id, info FROM persistclassindb").addscalar("id", NHibernateUtil.Int32).AddScalar("info", NHibernateUtil.String); IList e = q.list(); foreach (object[] v in e) Console.WriteLine("{0} {1}", v[0], v[1]); Obiekty też należy opisać: ISQLQuery::AddEntity(alias_kolumny, typ_obiektu) ISQLQuery sq = cs.createsqlquery("select { pk.*} from persistclassindb pk").addentity("pk", typeof(persistclass)); IList<PersistClass> f = q.list<persistclass>(); foreach (var v in f) Console.WriteLine("{0} {1}", v.id, v.data); Odczytanie klasy zawierającej kolekcję: ISQLQuery sq = cs.createsqlquery("select {k.*} from tab k, dict di where k.id = di.id").addentity("k", typeof(persistclass)); IList<PersistClass> f = q.list<persistclass>(); foreach (var v in f) { Console.WriteLine("{0}", v.id); if (v.dict.containskey("ef")) Console.WriteLine(" ef = {0}", v.dict["ef"]); } Trzeba ręcznie powiązać dane z tabeli z elementami kolekcji. Powyższy przykład nie jest w pełni funkcjonalny NHibernate nie wie, że elementy słownika przeczytał już z bazy danych przy dostępie do niego wystąpi dodatkowe zapytanie do bazy. Aby poinformować NHibernate o odczytanych danych, trzeba dodatkowo opisać połączenie: AddJoin("nazwa_aliasu_tabeli_kolekcji", "alias_tabeli_obiektu.nazwa_pola_kolekcji") ISQLQuery sq = cs.createsqlquery("select {k.*}, {di.*} from tab k, dict di where k.id = di.id").addentity("k", typeof(persistclass)).addjoin("di", "k.dict");
14 IX. Błędy. Cel: Informacja i najczęściej spotykanych błędach podczas związanych z NHibernate. No persister for:<nazwa_assembly>.<nazwa_klasy> plik mapujący <NAZWA_KLASY>.hbm.xml nie istnieje lub ma złą nazwę możliwe, że nie jest dołączany jako zasób osadzony (Properties BuildAction: Embedded Resource). Could not compile the mapping document: <NAZWA_ASSEMBLY>.<NAZWA_ KLASY >.hbm.xml najprawdopodobniej nazwie pliku mapującego nie odpowiada, żadna klasa (liczy się nazwa obiektu a nie pliku). Invalid Cast (check your mapping for property type mismatches); setter of <NAZWA_ASSEMBLY>.<NAZWA_ KLASY> błąd rzutowania, należy sprawdzić czy wszystkie właściwiści klasy są poprawnie zdefiniowane w odpowiadającym jej pliku *.nhm.xml. could not insert: [<NAZWA_ASSEMBLY>.<NAZWA_KLASY>][SQL: INSERT INTO <NAZWA_TABELI_W_BAZIE_DANYCH> (<NAZWA_KOLUMNY_W_BAZIE_DANYCH>) VALUES (?); select SCOPE_IDENTITY()] możliwe, że nie istnieje wymagana tabela, możliwy brak wywołania new SchemaExport(cfg).Execute( ). <NAZWA_ASSEMBLY>.<NAZWA_KLASY>: method get_<nazwa_property> should be 'public/protected virtual' or 'protected internal virtual' property mapowane przez NHibernate muszą być virtual.
Podstawowe wykorzystanie Hibernate
Podstawowe wykorzystanie Hibernate Cel Wykonanie prostej aplikacji webowej przedstawiającą wykorzystanie biblioteki. Aplikacja sprawdza w zależności od wybranej metody dodaje, nową pozycje do bazy, zmienia
Bardziej szczegółowoPodejście obiektowe do relacyjnych baz danych Hibernate.
Podejście obiektowe do relacyjnych baz danych Hibernate. Plan wykładu Czym jest Hibernate? Jakie są zalety pracy z Hibernate? Jak skonfigurować Hibernate? Jak korzystać z Hibernate? Praktyczne przykłady
Bardziej szczegółowoJęzyki programowania wysokiego poziomu. PHP cz.4. Bazy danych
Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł
Bardziej szczegółowoKurs programowania aplikacji bazodanowych
Wykład 6 Instytut Informatyki Uniwersytet Wrocławski Plan wykładu CastleProject i wzorzec ActiveRecord Wybrane możliwości Castle ActiveRecord Inicjalizja i konfiguracja Tworzenie klasy encji, dziedziczenie
Bardziej szczegółowoLaboratorium nr 4. Temat: SQL część II. Polecenia DML
Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze
Bardziej szczegółowoMetody dostępu do danych
Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody Obiekt interfejsu Session Jest to podstawowy interfejs komunikacji pomiędzy aplikacją, a API Hibernate
Bardziej szczegółowoPaweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/
Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Architektura Trwałość przezroczysta Konfiguracja, konfiguracja mapowania Dziedziczenie klas Kolekcje Asocjacje Cykl życia obiektów Trwałość przechodnia
Bardziej szczegółowoJęzyk SQL, zajęcia nr 1
Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze
Bardziej szczegółowo77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.
77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele
Bardziej szczegółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska Klucz podstawowy PRIMARY KEY Klucz kandydujący UNIQUE Klucz alternatywny - klucze kandydujące, które nie zostały wybrane na klucz podstawowy Klucz obcy - REFERENCES Tworząc tabelę,
Bardziej szczegółowoSystemy GIS Tworzenie zapytań w bazach danych
Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE
Bardziej szczegółowoĆwiczenia laboratoryjne nr 11 Bazy danych i SQL.
Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie
Bardziej szczegółowoTworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1
Tworzenie tabel Tabela podstawowa struktura, na której zbudowana jest relacyjna baza danych. Jest to zbiór kolumn (atrybutów) o ustalonych właściwościach, w których przechowuje się dane. Dane te są reprezentowane
Bardziej szczegółowoPawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl
Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność
Bardziej szczegółowoWprowadzenie do Doctrine ORM
Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,
Bardziej szczegółowoInstrukcja laboratoryjna nr.2
Języki programowania na platformie.net 2017/18 Instrukcja laboratoryjna nr.2 Kontener Unity Prowadzący: Tomasz Goluch Wersja: 2.0 I. Kontener Unity. Cel: Instalacja i konfiguracja kontenera Unity. Rejestracja
Bardziej szczegółowoWykład 5. SQL praca z tabelami 2
Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,
Bardziej szczegółowoBlaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik
Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie
Bardziej szczegółowoProgramowanie wielowarstwowe i komponentowe
Programowanie wielowarstwowe i komponentowe HIBERNATE CD. Rodzaje relacji Jeden do wielu Pojedyncza Osoba ma wiele Wpisów Wiele do jednego Wiele Wpisów należy do jednej Osoby Jeden do jednego Pojedyncza
Bardziej szczegółowoMapowanie obiektowo-relacyjne z wykorzystaniem Hibernate
Wirtualne przedsiębiorstwo II Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate Łukasz Macierzyński 157588 Daniel Nikończuk 157621 Kacper Oko 157626 Agenda 1. Co to jest mapowanie obiektowo-relacyjne
Bardziej szczegółowoPHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:
PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł mysqli ma dwa interfejsy: proceduralny i obiektowy) PostgreSQL Oracle MS
Bardziej szczegółowoPRZESTRZENNE BAZY DANYCH WYKŁAD 2
PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie
Bardziej szczegółowoBaza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne
Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z możliwości utworzenia struktury bazy danych z
Bardziej szczegółowoBazy danych. Polecenia SQL
Bazy danych Baza danych, to miejsce przechowywania danych. Dane w bazie danych są podzielone na tabele. Tabele składają się ze ściśle określonych pól i rekordów. Każde pole w rekordzie ma ściśle ustalony
Bardziej szczegółowoInstrukcja laboratoryjna
Zaawansowane techniki obiektowe 2016/17 Instrukcja laboratoryjna Testy funkcjonalne Prowadzący: Tomasz Goluch Wersja: 1.0 Testowanie aplikacji z bazą danych Większość współczesnych aplikacji korzysta z
Bardziej szczegółowoBazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1
Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych
Bardziej szczegółowostrukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych
SQL SQL (ang. Structured Query Language): strukturalny język zapytań używany do tworzenia strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych
Bardziej szczegółowoOracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -
Bardziej szczegółowoRelacyjne bazy danych. Podstawy SQL
Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.
Bardziej szczegółowoWprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.
Bazy Danych i Systemy informacyjne Wykład 2 Piotr Syga 16.10.2017 Dodawanie, usuwanie i zmienianie rekordów Wstawianie rekordu wstawianie do tabeli INSERT INTO A VALUES ( fioletowy, okrągły, słodko-kwaśny
Bardziej szczegółowoBaza danych sql. 1. Wprowadzenie
Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który
Bardziej szczegółowoInstytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 3 (Tworzenie bazy danych z użyciem UML, proste
Bardziej szczegółowoSprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.
Za operacje na bazie odpowiada biblioteka mysqli (i jak improved). Posiada ona interfejs obiektowy jak i proceduralny. Podłączenie do bazy (obiektowo) mysqli:: construct() ([ string $host [, string $username
Bardziej szczegółowoPodstawy języka SQL. SQL Structured Query Languagestrukturalny
Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych
Bardziej szczegółowoBazy danych 6. Klucze obce. P. F. Góra
Bazy danych 6. Klucze obce P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2018 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka sposobów. Sposób ten (żargonowo:
Bardziej szczegółowoInstrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.
Rodzaje triggerów Triggery DML na tabelach INSERT, UPDATE, DELETE Triggery na widokach INSTEAD OF Triggery DDL CREATE, ALTER, DROP Triggery na bazie danych SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN
Bardziej szczegółowoInstytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Laboratorium 1 Wprowadzenie, podstawowe informacje o obsłudze
Bardziej szczegółowoWykład 6. SQL praca z tabelami 3
Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1
Bardziej szczegółowoWdrożenie do projektu
Wdrożenie do projektu Zaczynamy od stworzenia zwykłego projektu Java. Środowisko z jakiego korzystam to Netbeans IDE w wersji 8.1. Możesz wykorzystywać inne IDE, bylebyś stosował analogiczne kroki w swoim
Bardziej szczegółowo1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1
1 LINQ 1 1. Cel zajęć Celem zajęć jest zapoznanie się z technologią LINQ oraz tworzeniem trójwarstwowej aplikacji internetowej. 2. Zadanie Proszę przygotować aplikację WWW, która: będzie pozwalała na generowanie
Bardziej szczegółowoPrzykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.
Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.
Bardziej szczegółowokoledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,
Celem ćwiczeń jest zaprojektowanie oraz utworzenie na serwerze bazy danych przechowującej informacje na temat danych kontaktowych. Celem jest również zapoznanie z podstawowymi zapytaniami języka SQL służącymi
Bardziej szczegółowoProgramowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika
Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.
Bardziej szczegółowoInstrukcja laboratoryjna nr.3
Języki programowania na platformie.net 2017/18 Instrukcja laboratoryjna nr.3 Biblioteka EPPlus Prowadzący: Tomasz Goluch Wersja: 1.0 I. Biblioteka EPPlus. Cel: Podstawowe informacje o bibliotece EPPlus.
Bardziej szczegółowoP o d s t a w y j ę z y k a S Q L
P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p
Bardziej szczegółowoKurs programowania aplikacji bazodanowych
Wykład 5 Instytut Informatyki Uniwersytet Wrocławski Plan wykładu Wprowadzenie do XPO Podstawowe obiekty Utrwalanie obiektów Transakcje i współbieżność Wzorzec unit of work Odwzorowanie dziedziczenia Asocjacje
Bardziej szczegółowoInstytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 3 (Tworzenie bazy danych z użyciem UML, proste
Bardziej szczegółowoASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3
3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0
Bardziej szczegółowoObiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody
Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,
Bardziej szczegółowoBazy danych. Dr inż. Paweł Kasprowski
Plan wykładu Bazy danych Podstawy relacyjnego modelu danych Dr inż. Paweł Kasprowski pawel@kasprowski.pl Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność
Bardziej szczegółowoInstytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl fb.com/groups/bazydanychmt/ Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 3 (Tworzenie
Bardziej szczegółowoIntegralność danych Wersje języka SQL Klauzula SELECT i JOIN
Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Integralność danych Aspekty integralności
Bardziej szczegółowoLiteratura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska
Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion Autor: Joanna Karwowska SQL zapewnia obsługę: zapytań - wyszukiwanie danych w bazie, operowania danymi - wstawianie, modyfikowanie
Bardziej szczegółowoOdnawialne Źródła Energii I rok. Tutorial PostgreSQL
Tutorial PostgreSQL 1. Instalacja na własnym komputerze: a. Zainstaluj program ze strony: https://www.postgresql.org/download/ Wersja odpowiednia dla systemu operacyjnego Linux, Mac, Windows Przy pierwszym
Bardziej szczegółowoBazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r.
Bazy danych dla producenta mebli tapicerowanych Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Założenia Stworzyć system bazodanowy dla małej firmy produkującej meble tapicerowane. Projekt ma umożliwić
Bardziej szczegółowo3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota
Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)
Bardziej szczegółowoPodstawy technologii WWW
Podstawy technologii WWW Ćwiczenie 11 PHP, MySQL: więcej, więcej!, więcej!!. tabel i funkcjonalności. Na dzisiejszych zajęciach zdefiniujemy w naszej bazie kilka tabel powiązanych kluczem obcym i zobaczymy,
Bardziej szczegółowoRelacyjne bazy danych. Podstawy SQL
Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.
Bardziej szczegółowoCREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Zestaw ćwiczeń1 Dzięki DDL (Data Definition Language) można operować na strukturach, w których dane są przechowywane czyli np. dodawać, zmieniać i kasować tabele lub bazy. Najważniejsze polecenia tej grupy
Bardziej szczegółowoBazy Danych i Usługi Sieciowe
Bazy Danych i Usługi Sieciowe Ćwiczenia I Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) BDiUS ćw. I Jesień 2011 1 / 15 Strona wykładu http://bioexploratorium.pl/wiki/ Bazy_Danych_i_Usługi_Sieciowe_-_2011z
Bardziej szczegółowoNHibernate. Narzędzie mapowania obiektowo - relacyjnego
NHibernate Narzędzie mapowania obiektowo - relacyjnego Autor : Maciej Białorucki Mapowanie obiektowo-relacyjne Mapowanie obiektowo - relacyjne Object Relation Mapping Dwa światy Dlaczego nie stosować baz
Bardziej szczegółowoPHP: bazy danych, SQL, AJAX i JSON
1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji
Bardziej szczegółowoProjektowanie systemów baz danych
Projektowanie systemów baz danych Seweryn Dobrzelewski 4. Projektowanie DBMS 1 SQL SQL (ang. Structured Query Language) Język SQL jest strukturalnym językiem zapewniającym możliwość wydawania poleceń do
Bardziej szczegółowoProgramowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,
Bardziej szczegółowoJęzyk SQL Złączenia. Laboratorium. Akademia Morska w Gdyni
Akademia Morska w Gdyni Gdynia 2004 1. Złączenie definicja Złączenie (JOIN) to zbiór rekordów stanowiących wynik zapytania służącego pobraniu danych z połączonych tabel (związki jeden-do-jeden, jeden-do-wiele
Bardziej szczegółowoWprowadzenie do projektowania i wykorzystania baz danych Relacje
Wprowadzenie do projektowania i wykorzystania baz danych Relacje Katarzyna Klessa Dygresja nt. operatorów SELECT 2^2 SELECT 2^30 SELECT 50^50 2 Dygresja nt. operatorów SELECT 2^30 --Bitwise exclusive OR
Bardziej szczegółowoWykład 8. SQL praca z tabelami 5
Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu
Bardziej szczegółowoBAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech
BAZY DANYCH Obsługa bazy z poziomu języka PHP opracowanie: Michał Lech Plan wykładu 1. PHP - co to jest? 2. Bazy danych obsługiwane przez PHP 3. Podstawowe polecenia 4. Sesje 5. Przykład - dodawanie towaru
Bardziej szczegółowoUPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');
polecenie UPDATE służy do aktualizacji zawartości wierszy tabel lub perspektyw składnia: UPDATE { } SET { { = DEFAULT NULL}, {
Bardziej szczegółowoWyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia
Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Składowe wyzwalacza ( ECA ): określenie zdarzenia ( Event ) określenie
Bardziej szczegółowoPrzykładowa baza danych BIBLIOTEKA
Przykładowa baza danych BIBLIOTEKA 1. Opis problemu W ramach zajęć zostanie przedstawiony przykład prezentujący prosty system biblioteczny. System zawiera informację o czytelnikach oraz książkach dostępnych
Bardziej szczegółowoAby uruchomić program klienta i połączyć się z serwerem, należy komendę:
Bazy danych. Komunikacja z serwerem Aby połączyć się z serwerem i móc wykonywać czynności związane z obsługą baz, potrzebny jest program klienta. Razem z serwerem MySQL dostępny jest działający w wierszu
Bardziej szczegółowoProjektowanie obiektowe oprogramowania Wykład 9 Wzorce architektury aplikacji (1) Wiktor Zychla 2013
Projektowanie obiektowe oprogramowania Wykład 9 Wzorce architektury aplikacji (1) Wiktor Zychla 2013 1 Automated code generation To bardziej technika wspomagająca niż wzorzec, ale wykorzystywana w praktyce
Bardziej szczegółowoDMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski
DMX DMX DMX Data Mining Extensions jest językiem do tworzenia i działania na modelach eksploracji danych w Microsoft SQL Server Analysis Services SSAS. Za pomocą DMX można tworzyć strukturę nowych modeli
Bardziej szczegółowoBazy danych i usługi sieciowe
Bazy danych i usługi sieciowe Ćwiczenia I Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) BDiUS ćw. I Jesień 2014 1 / 16 Strona wykładu http://bioexploratorium.pl/wiki/ Bazy_danych_i_usługi_sieciowe_-_2014z
Bardziej szczegółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska Jeśli pobieramy dane z więcej niż jednej tabeli, w rzeczywistości wykonujemy tak zwane złączenie. W SQL istnieją instrukcje pozwalające na formalne wykonanie złączenia tabel - istnieje
Bardziej szczegółowoIndeksowanie w bazach danych
w bazach Katedra Informatyki Stosowanej AGH 5grudnia2013 Outline 1 2 3 4 Czym jest indeks? Indeks to struktura, która ma przyspieszyć wyszukiwanie. Indeks definiowany jest dla atrybutów, które nazywamy
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha
Bardziej szczegółowoPodstawy programowania III WYKŁAD 2
Podstawy programowania III WYKŁAD 2 Jan Kazimirski 1 Komunikacja z bazami danych 2 PHP i bazy danych PHP zapewnia dostęp do wielu popularnych baz danych. Kilka poziomów abstrakcji: Funkcje obsługujące
Bardziej szczegółowoRef. 7 - Język SQL - polecenia DDL i DML
Ref. 7 - Język SQL - polecenia DDL i DML Wprowadzenie do języka SQL. Polecenia generujące strukturę bazy danych: CREATE, ALTER i DROP. Polecenia: wprowadzające dane do bazy - INSERT, modyfikujące zawartość
Bardziej szczegółowoE.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze
Funkcje użytkownika Tworzenie funkcji Usuwanie funkcji Procedury składowane Tworzenie procedur składowanych Usuwanie procedur składowanych Wyzwalacze Wyzwalacze a ograniczenia i procedury składowane Tworzenie
Bardziej szczegółowoSystemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012:
Systemy baz danych 16.04.2013 1. Plan: 10. Implementacja Bazy Danych - diagram fizyczny 11. Implementacja Bazy Danych - implementacja 2. Zadania: 1. Przygotować model fizyczny dla wybranego projektu bazy
Bardziej szczegółowoKonstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT
Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania
Bardziej szczegółowoUML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.
UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami
Bardziej szczegółowoDostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK
Dostęp do baz danych z serwisu www - PHP Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK Bazy Danych I, 8 Grudzień 2009 Plan Trochę teorii Uwagi techniczne Ćwiczenia Pytania Trójwarstwowy
Bardziej szczegółowoWykład 5 Okna MDI i SDI, dziedziczenie
Wykład 5 Okna MDI i SDI, dziedziczenie Autor: Zofia Kruczkiewicz Zagadnienia 1. Aplikacja wielookienkowa. Zakładanie projektu typu CLR Windows Forms 1.1. Aplikacja typu MDI 1.2. Aplikacja typu SDI 2. Dziedziczenie
Bardziej szczegółowoTypy metod: konstruktory, destruktory, selektory, zapytania, iteratory.
Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory. Konstruktory Konstruktory w językach obiektowych są to specjalne metody wywoływane podczas tworzenia nowego obiektu i służące do
Bardziej szczegółowoSQL (ang. Structured Query Language)
SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze
Bardziej szczegółowoWykład 5: PHP: praca z bazą danych MySQL
Wykład 5: PHP: praca z bazą danych MySQL Architektura WWW Podstawowa: dwuwarstwowa - klient (przeglądarka) i serwer WWW Rozszerzona: trzywarstwowa - klient (przeglądarka), serwer WWW, serwer bazy danych
Bardziej szczegółowoWykład 4. SQL praca z tabelami 1
Wykład 4 SQL praca z tabelami 1 Typy danych Typy liczbowe Typy całkowitoliczbowe Integer types - Typ INTEGER; 32-bitowa liczba ze znakiem z zakresu -2 31 do 2 31 1 - Typ SMALLINT; typ całkowity mniejszy
Bardziej szczegółowoCREATE USER
Temat: Administrowanie użytkownikami bazy danych. Po instalacji serwera MYSQL dostępne jest konto o nazwie root. Domyślnie nie ma ono przypisanego hasła, aczkolwiek podczas procesu konfiguracji jest możliwość
Bardziej szczegółowoBazy danych 10. SQL Widoki
Bazy danych 10. SQL Widoki P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Widoki, AKA Perspektywy W SQL tabela, która utworzono za pomoca zapytania CREATE TABLE, nazywa się tabela
Bardziej szczegółowoProgramowanie w Ruby
Programowanie w Ruby Wykład 11 Marcin Młotkowski 19 grudnia 2012 Plan wykładu Modele danych i bazy danych Modele danych Migracje Bazy danych w Railsach Rusztowania Walidacja modeli Modele danych Definicje
Bardziej szczegółowo2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH
PLAN WYKŁADU Bezpieczeństwo w języku SQL Użytkownicy Uprawnienia Role BAZY DANYCH Wykład 8 dr inż. Agnieszka Bołtuć OGRANICZENIA DOSTĘPU DO DANYCH Ograniczenie danych z tabeli dla określonego użytkownika
Bardziej szczegółowoJęzyk SQL. Rozdział 9. Język definiowania danych DDL, część 2.
Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. Ograniczenia integralnościowe, modyfikowanie struktury relacji, zarządzanie ograniczeniami. 1 Ograniczenia integralnościowe Służą do weryfikacji
Bardziej szczegółowoProgramowanie w Ruby
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'
Bardziej szczegółowoJęzyk DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE
Język DML Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Systemy Baz Danych, Hanna Kleban 1 INSERT Instrukcja INSERT dodawanie
Bardziej szczegółowo