Wiedza: obiektowy SQL (w MS SQL)

0

Hej, chciałem się dowiedzieć gdzie mógłbym znaleźć, pouczyć się takiego obiektowego SQL. Czy pod tym pojęciem("obiektowy SQL") kryją się procedury , funkcje, triggery?

0

Ja mimo, że od lat pracuje z MS SQL nie spotkałem się z pojęciem obiektowego SQL, SQL dzieliłem tylko na DML, DDL i DCL. Napisz coś więcej

0

@Marcin.Miga:
Wg mnie, nie. Dla mnie to znaczy tyle:
https://en.wikipedia.org/wiki/Object_database

@Panczo
Nigdy? Może za młody jesteś :D Były takie pomysły, o ile dobrze pamiętam, przed erą NoSQL.

Obiektowego SQL to nie w T-SQL. No way. No może w CLR coś tam się da i jak Python wejdzie do silnika, to może...
Ale, raczej pewnie nie. MSSQL to nie object database

Generalnie są dwa podejścia do OOP w SQL; jedno dotyczy SQL jako języka zapytań, np. PL/SQL
https://www.tutorialspoint.com/plsql/plsql_object_oriented.htm

A drugie typów danych (Object-Oriented Design); np. taki PostgreSQL wspiera table inheritance, czyli dziedziczenie tabel.
https://www.postgresql.org/docs/current/static/tutorial-inheritance.html
I znacznie, znacznie wiecej w zakresie OOP.
W ogóle chyba PostgreSQL to chyba najbardziej rozbudowana hybryda relacyjno-obiektowa.

0

Na temat Object Query Language znalazłem fajny opis tutaj:
https://edu.pjwstk.edu.pl/wyklady/ssr/scb/w10d.html
Chciałem go trochę przetestować i go poznać w MS SQL. Póki co bez rezultatów. Jak można uruchomić coś takiego?:
select distinct struct(a:x.wiek,b:x.płeć)
from Pracownicy as x
where x.nazwisko="Nowak"
Czy coś trzeba jeszcze doinstalować jakiś dodatek albo może zainstalować jakąś wtyczkę aby w MS SQL poprawnie zinterpretował to zapytanie? Jestem poczatkujący w tym zakresie . Proszę o jakieś wskazówki w tym temacie

0
Michal Michalos napisał(a):

Na temat Object Query Language znalazłem fajny opis tutaj:
https://edu.pjwstk.edu.pl/wyklady/ssr/scb/w10d.html

To przeczytaj ten fajny opis CAŁY Ze zrozumieniem, a dowiesz się że.
OQL jest obiektowym językiem zapytań w stylu SQL (ale zbieżność jest powierzchowna, KS.). Rozbieżności dotyczą pojęć obiektowych, takich jak złożone obiekty, tożsamość obiektów, wyrażenia ścieżkowe, polimorfizm, wołanie operacji, późne wiązanie
oraz
Jako język zanurzony, OQL formułowanie zapytań skierowanych do obiektów j.w., które są podtrzymywane przez dany język programowania. Zapytanie w OQL jest traktowane jako funkcja, której wynikiem jest obiekt o typie określonym przez zapytanie.

Chciałem go trochę przetestować i go poznać w MS SQL. Póki co bez rezultatów.

MSSQL != OQL

Jak można uruchomić coś takiego?:
select distinct struct(a:x.wiek,b:x.płeć)
from Pracownicy as x
where x.nazwisko="Nowak"

W SQL trzeba to napisać...

select distinct x.wiek, x.plec
from Pracownicy as x
where x.nazwisko = 'Nowak'

Czy coś trzeba jeszcze doinstalować jakiś dodatek albo może zainstalować jakąś wtyczkę aby w MS SQL poprawnie zinterpretował to zapytanie? Jestem poczatkujący w tym zakresie . Proszę o jakieś wskazówki w tym temacie

Wskazówki dostałeś, teraz pozostaje Ci się do nich zastosować,i testować ze zrozumieniem.

0

Hej wlochacz!!!

To o czym powyżej napisałeś to są oczywiste rzeczy, które prawie za każdym razem po wpisaniu OQL do przeglądarki są wyjaśnione i napisane. Nic nowego niestety, ale nie napisałeś. Mnie interesuje konkretna odpowiedz na pytanie: W jaki sposób można zobaczyć w MS SQL : efekt:
select distinct struct(a:x.wiek,b:x.płeć)
from Pracownicy as x
where x.nazwisko="Nowak"

po wpisaniu zapytania:
SELECT DISTINCT x.wiek, x.plec
FROM Pracownicy AS x
WHERE x.nazwisko = 'Nowak'

Co należy zrobić, aby zobaczyć własnie taką interpretację obiektową w Microsoft SQL Server Management Studio, a nie tabelkę? Być może, źle opisałem cel do którego dążę w MS SQL-u, za co przepraszam. Mam nadzieję że doprecyzowałem moje zamiary.

0
Michal Michalos napisał(a):

Hej wlochacz!!!

To o czym powyżej napisałeś to są oczywiste rzeczy, które prawie za każdym razem po wpisaniu OQL do przeglądarki są wyjaśnione i napisane.

Skoro tak, to czego nie rozumiesz?

Nic nowego niestety, ale nie napisałeś.

Zrozum, ze w MSSQL się nie da.
Baza nie posługuje się ani nie wspiera OQL na żadnym poziomie.
Nie wspiera również OOP design na poziomie DDL.
Nie i koniec.

Mnie interesuje konkretna odpowiedz na pytanie: W jaki sposób można zobaczyć w MS SQL : efekt:

Dostałeś konkretną odpowiedź.
Nie jest to możliwe.

A poza tym, co to ma być ów efekt:?
Jak ma to być widać?

select distinct struct(a:x.wiek,b:x.płeć)
from Pracownicy as x
where x.nazwisko="Nowak"

po wpisaniu zapytania:
SELECT DISTINCT x.wiek, x.plec
FROM Pracownicy AS x
WHERE x.nazwisko = 'Nowak'

Co należy zrobić, aby zobaczyć własnie taką interpretację obiektową

Taką, czyli jaką?

w MS SQL, a nie tabelkę?

A obiekty nie mogą być w tabelce?
To wyobraź sobie, że każdy wiersz to reprezentacja obiektu, a jej kolumny - to atrybuty (albo, jak słyszałem jakiegoś guru od front-endu "propercje", ja pierdykam...).
I tyle.

Być może, źle opisałem cel do którego dążę w MS SQL-u, za co przepraszam. Mam nadzieję że doprecyzowałem moje zamiary.

Proszę, ale nie nie rozumiem co chcesz zobaczyć.
Z MSSQL możesz zobaczyć reprezentację danych w postaci OOP tylko i wyłącznie w aplikacji przez zastosowanie jakiegoś ORM - np. Entity Framwork lub czegoś co Ci te obiekty zbudje na podstawie danych relacyjnych.

Wtedy możesz zadawać zapytania w stylu OQL (np. LINQ to SQL) i posługiwać się obiektami.
Ale to jest OQL zanurzony w aplikacji, a nie w bazie danych.
Taki ORM transformuje zapytania OQL na SQL (np. wspomniany LINQ to SQL się tym zajmuje), wykonuje zapytanie, przetwarza wyniki i buduje reprezentację obiektową dla wyników z relacyjnej bazy danych.
I tak to działa.
Uzyskać podobny efekt z bazy z MSSQL - niemożliwe.

ALE!
Możesz się pobawić LINQPad'em
https://www.linqpad.net/
Wtedy zobaczysz swój "efekt", a tak naprawdę zobaczysz efekt pracy LINQ to SQL :D

0

Hej, Mam zainstalowany LinQPad, mam zrobione połączenie do SQL Servera. Czy jesteś pewien że w LinqPad-zie można uzyskać efekt: select distinct struct(a:x.wiek,b:x.płeć) from Pracownicy as x where x.nazwisko="Nowak"?? Jeszcze nie wiem jak LinqPad należy skonfigurować, aby zobaczyć taki efekt.

1 użytkowników online, w tym zalogowanych: 0, gości: 1