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?

- Rejestracja:prawie 17 lat
- Ostatnio:dzień
- Postów:2792
O https://pl.wikipedia.org/wiki/Object_Query_Language ci chodzi?
- Rejestracja:około 21 lat
- Ostatnio:7 dni
- Postów:1083
@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.

- Rejestracja:około 7 lat
- Ostatnio:około 7 lat
- Postów:4
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
- Rejestracja:około 21 lat
- Ostatnio:7 dni
- Postów:1083
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.

- Rejestracja:około 7 lat
- Ostatnio:około 7 lat
- Postów:4
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.
- Rejestracja:około 21 lat
- Ostatnio:7 dni
- Postów:1083
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

- Rejestracja:około 7 lat
- Ostatnio:około 7 lat
- Postów:4
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.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.