Jak wysyłać zapytania do baz danych NoSQL w Javie

Opublikowany: 2022-11-23

W ostatnich latach popularność baz NoSQL gwałtownie wzrosła. Te bazy danych są zazwyczaj bardziej skalowalne i łatwiejsze w obsłudze niż tradycyjne relacyjne bazy danych. Jednak zapytania mogą być trudniejsze, zwłaszcza jeśli nie znasz ich składni. Java to popularny język programowania, który jest często używany do tworzenia aplikacji internetowych. Jeśli pracujesz z danymi NoSQL w Javie, będziesz musiał zastosować inne podejście do wykonywania zapytań niż to, do którego jesteś przyzwyczajony w przypadku baz danych SQL. Istnieje kilka różnych sposobów uzyskiwania dostępu do danych NoSQL za pomocą języka Java. Najczęściej jest to użycie biblioteki takiej jak Hibernate lub Spring Data. Biblioteki te wyodrębniają szczegóły bazowej bazy danych, ułatwiając pisanie kodu, który można przenosić na różne platformy NoSQL. Inną opcją jest użycie natywnego interfejsu API języka Java dla określonej bazy danych NoSQL, z którą pracujesz. Takie podejście zapewnia większą kontrolę nad szczegółami interakcji z bazą danych, ale kodowanie może być trudniejsze. Bez względu na to, które podejście wybierzesz, musisz znać podstawowe koncepcje baz danych NoSQL, aby móc skutecznie wysyłać do nich zapytania. Obejmuje to zrozumienie, w jaki sposób dane są zorganizowane w bazach danych NoSQL i znajomość różnych typów zapytań, których można użyć.

NosDB ma dużą skalowalność i jest bardzo szybki. Jest to baza danych NoSQL oparta na sieci NET, która może przechowywać ogromną ilość nieustrukturyzowanych danych. Stosuje stabilną strategię dystrybucji, aby chronić integralność danych, jednocześnie zapewniając swoim użytkownikom system odporny na awarie przez cały czas. NosDB dostarczyło oficjalnego klienta Java, oprócz interfejsu Java API do łączenia się z bazą danych. Celem tego artykułu jest krótkie wprowadzenie do Javaja API. Klient JAVA NosDB jest zasadniczo podzielony na trzy kategorie: Dokument musi być opatrzony kluczem, aby mógł zostać pobrany z bazy danych.

NosDB automatycznie wygeneruje klucz, gdy żaden klucz nie zostanie zdefiniowany podczas procesu wstawiania, i zapisze go. Według firmy dostęp do baz danych NosDB można uzyskać za pomocą zapytań. Ponieważ NosDB obsługuje tablice jako wartości pól, kolumny w kolekcji mogą być wielowartościowe, a nie pojedyncze wartości w tradycyjnych bazach danych. NosDB poprawił swoją strukturę SQL w odpowiedzi na zwiększoną elastyczność danych zapewnianą przez schemat JSON.

OrientDB to baza danych NoSQL typu open source, która obsługuje różne modele, w tym wykres, dokument, model klucza/wartości obiektu i tak dalej. Kod to Java. Osiąga się to za pomocą bezpośrednich połączeń między wszystkimi rekordami danych, tak jak w przypadku grafowych baz danych.

Czy Jdbc może połączyć się z Nosql?

Zdjęcie zrobione przez: https://programming.vip

Tak, JDBC może łączyć się z bazami danych NoSQL. Można to zrobić na kilka różnych sposobów, ale najczęstszym sposobem jest użycie sterownika JDBC, który obsługuje używaną bazę danych NoSQL. Na przykład, jeśli używasz MongoDB, możesz użyć sterownika MongoDB JDBC .

Zoho Analytics Upload Tool to samodzielne narzędzie do pobrania, które można zainstalować w środowisku lokalnym i używać do przesyłania danych z lokalnych baz danych za zaporą ogniową. W tej sekcji dowiesz się, jak podłączyć narzędzie do przesyłania, aby pobrać dane z lokalnej/hostowanej bazy danych NoSQL zgodnej z JDBC i zaimportować je do Zoho Analytics. Musisz skonfigurować ustawienia, aby dostęp do bazy danych NoSQL był możliwy z lokalizacji lokalnej lub hostowanej. Prześlij dane można przesłać, określając dowolną liczbę żądanych zapytań pobierania. Parametry te można znaleźć w pliku common_params.conf. Wiersz poleceń wiersza poleceń może być użyty do wywołania narzędzia przesyłania. Narzędzie przesyłania to narzędzie, którego można używać do planowania regularnego przesyłania danych z bazy danych obsługiwanej przez JDBC do Zoho Analytics.

Możliwość synchronizacji danych aplikacji z analizą Zoho to fantastyczny dodatek. W systemach Linux i Mac możesz zaplanować proces migracji za pomocą polecenia crontab. W tym przewodniku wyjaśniono, jak używać narzędzia cron do ustawiania czasu przesyłania danych w określonych odstępach czasu. W Zoho Analytics narzędzie do przesyłania może być używane do przesyłania danych ze zdalnych hostowanych baz danych (Mongodb, Apache Cassandra , Apache Hadoop Hive). Użytkownik może ustawić liczbę wierszy do wysłania dla każdej partii za pomocą parametru LINES_TO_SEND pliku common_params. Aby przesłać dane za pomocą narzędzia Upload Tool, możesz zmienić nazwy kolumn w tabeli Zoho Analytics na podstawie informacji z lokalnej bazy danych. W przypadku niestandardowych formatów daty należy przekonwertować wartość daty na wymagany format w zapytaniu SQL.

Format daty przesłanych danych w formacie dd/mm/rrrrrrrr HH:mm:ss. Komunikat o błędzie narzędzia do przesyłania informuje, że nie można przesyłać plików większych niż 50 MB. Może to być spowodowane nieprawidłowymi ustawieniami serwera proxy. Aby przesłać większe ilości danych, Zoho Analytics Upload Tool dzieli dane na partie i przesyła je. Bardzo ważne jest, aby rozmiar partii nie przekraczał 20 MB lub 100 000 rekordów na partię. Użytkownik może mieć tylko 20 aktywnych sesji miesięcznie z usługą Zoho. Jeśli osiągniesz ten limit, musisz zamknąć aktualnie aktywne sesje w Zoho Analytics. Jeśli Twoje konto jest hostowane w centrum danych UE, musisz określić następujące parametry uwierzytelniania.

Bazy danych zorientowane na dokumenty, takie jak MongoDB, przechowują dane w zbiorach i można uzyskać do nich dostęp za pośrednictwem przeglądarki internetowej. Na dokument składają się pola, które są właściwościami na poziomie kolekcji. Pola w Twojej aplikacji zawierają wszystkie typy danych, których można się spodziewać w polu, w tym ciągi znaków, liczby i tablice. Ponieważ dokumenty są niezmienne, nie można wprowadzać w nich zmian po ich utworzeniu.
W metodzie connect() sterownika MongoDB JDBC obiekt MongoDBConnection jest zwracany po otwarciu połączenia gniazda MongoDB JDBC z serwerem MongoDB. Następnym krokiem jest utworzenie obiektu MongoDBQuery i utworzenie obiektu MongoDBConnection, który definiuje właściwość połączenia. Kiedy obiekt MongoDBResultSet powraca z zapytania obiektowego MongoDBQuery, jest on określany jako obiekt MongoDBResultSet. Następnie musisz użyć metody next() obiektu MongoDBResultSet, aby uzyskać następny dokument z serwera MongoDB. Zbiór kolejnych pól dokumentu jest wyświetlany w metodzie GetFields() MongoDBResultSet.
Następnie metoda close obiektu MongoDBConnection zostanie użyta do zamknięcia połączenia gniazda serwera MongoDB. Plik java.io jest zwracany jako strumień wyjściowy przy użyciu metody getOutputStream() obiektu MongoDB objectConnection. Obiekt strumienia wyjściowego składa się z dwóch części. Następnym krokiem jest metoda java.io writeString. Obiekt Stream, który generuje ciąg z komunikatem Hello, World. Strumień wyjściowy powinien zostać wysłany na serwer.
Ostatecznie obiekt MongoDBConnection musi zostać zamknięty przy użyciu metody close() obiektu MongoDBQuery i obiektu MongoDBResultSet.

Bazy danych Nosql i interfejs API Jdbc

Bazy danych NoSQL zyskują na popularności, ponieważ łatwiej je zintegrować z większymi bazami danych, ale JDBC API nie zapewnia wbudowanych funkcji do łączenia się z bazami danych NoSQL, takimi jak Redis czy CouchDB. Dotyczy interakcji z systemami relacyjnymi i jest wyróżniany przez JDBC. Jak połączyć się z bazą danych MongoDB? Korzystając z łączności MongoDB JDBC, można umieścić zapytanie w bazie danych, wprowadzić aktualizacje i uzyskać dostęp do procedur przechowywanych. W tym samouczku przyjrzymy się szczegółom połączenia JDBC między MongoDB i Javą.

Czy Nosql obsługuje Javę?

Zdjęcie zrobione przez: https://ucarecdn.com

Tak, nosql obsługuje Javę. Istnieje kilka różnych baz danych nosql obsługujących Javę, takich jak MongoDB, Couchbase i Cassandra. Każda z tych baz danych ma własne sterowniki i zestawy SDK, których można używać do interakcji z bazą danych z poziomu aplikacji Java.

Baza danych Technologia NoSQL została wykorzystana przez wiele firm internetowych w celu osiągnięcia dużej skalowalności. Baza danych NoSQL jest często rozproszona na wielu komputerach z pewnymi opóźnieniami, ale gwarantuje jedynie, że wszystkie instancje będą spójne w czasie. Moi obserwatorzy na Twitterze zostali poinformowani o istnieniu mojego artykułu w połowie sierpnia. Redis, MongoDB, ArangoDB, Neo4j i Cassandra zostały uznane przez gwiazdy GitHub za pięciu najlepszych dostawców NoSQL. Ponieważ te trzy firmy, DynamoDB, Couchbase i FaunaDB, nie mają serwerów GitHub, ich sterowniki Java policzyłem jako gwiazdki. Liczba gwiazdek w sterowniku Java każdej opcji to dobry pomysł, ale w przypadku Redis jest ich tylko 11. Cassandra, rozproszony system pamięci masowej, jest przeznaczony do obsługi dużych ilości ustrukturyzowanych danych na bardzo dużej liczbie serwerów towarowych.

Ponad 100 000 węzłów obsługuje obecnie Cassandrę na farmach produkcyjnych Apple, które przechowują ponad 10 petabajtów danych. Netflix otrzymuje ponad 1 bilion żądań dziennie, z 2500 węzłami i 420 terabajtami przestrzeni dyskowej. Binarny JSON (aka JSONB) i indeksy zostały dodane do biblioteki Postgres 9.4. Leigh Halliday nauczy Cię, jak wykorzystać Postgres do szybkiego i wydajnego przechowywania danych. Umair Shahid demonstruje w poście na blogu, jak przetwarzać dane Postgres w Javie. Chociaż PostgreSQL nie jest bazą danych JSON nowej generacji, jest świetną relacyjną bazą danych z solidną historią JSON. Daj mi znać, jeśli jesteś ekspertem w zakresie baz danych NoSQL.

Jeśli masz jakieś pytania, chętnie odpowiem na nie w rozmowie. MongoDB, Cassandra, Redis i Neo4j to najpopularniejsze bazy danych NoSQL . JAXenter opublikował wyniki swojego corocznego badania najpopularniejszych trendów w bazach danych 30 marca 2017 r.

Co to jest Nosql w Javie?

Bazy danych NoSQL przechowują dane w dokumentach JSON, a nie w wierszach i kolumnach. Bazy danych NoSQL zazwyczaj mają interfejsy API języka SQL i natywnych dokumentów, które są interfejsami do baz danych. Bazy danych dokumentów, magazyny klucz-wartość, bazy danych z szerokimi kolumnami i bazy danych wykresów to tylko niektóre przykłady baz danych NoSQL.

Przykład Javy Nosql

Zdjęcie zrobione przez: https://blogspot.com

Istnieje wiele różnych typów baz danych NoSQL, z których każda ma swoje mocne i słabe strony. Z tego powodu trudno jest podać jeden przykład, który miałby uniwersalne zastosowanie. Jednak jedną z popularnych baz danych NoSQL jest Apache Cassandra. Cassandra to rozproszona baza danych, która doskonale nadaje się do obsługi dużych ilości danych. Jest często używany przez firmy, które mają duże, złożone zbiory danych.

Jak odczytywać dane z Mongodb w Javie

Istnieje kilka różnych sposobów odczytywania danych z MongoDB w Javie. Jednym ze sposobów jest użycie sterownika Java MongoDB do połączenia się z instancją MongoDB i uruchamiania zapytań za pomocą konstruktora zapytań sterownika Java. Innym sposobem jest użycie powłoki MongoDB do połączenia się z instancją MongoDB i zapytania o dane przy użyciu języka zapytań MongoDB.

Dostępnych jest wiele narzędzi i metod, z których jedną jest generator. Jeśli masz do zarządzania dużą liczbę obiektów, powinieneś rozważyć użycie innej struktury poza sterownikiem Java. W takim przypadku należy użyć następującego kodu: Ponieważ nie chcemy używać przestarzałych metod, zamiast tego użyjemy następującego kodu. JsonFactory, JsonParser i tak dalej to przykłady JsonFactory. Nowy interfejs API Java MongoDB jest dla mnie bardziej odpowiedni. Jeśli zamierzasz przechowywać wiele dokumentów zawierających nazwisko i wiek tej samej osoby, zalecam użycie ArrayList do znalezienia wszystkich tych dokumentów (które możesz zobaczyć jako wiersze zawierające to samo imię i nazwisko oraz wiek). Następnie możesz wybrać dokumenty w ArrayList, aby przekonwertować je na obiekty Java przy użyciu tej metody.

Jak pobrać dane z Mongodb?

Korzystając z operacji odczytu, możesz pobierać dane z bazy danych MongoDB. Ogólnie rzecz biorąc, istnieje kilka rodzajów operacji odczytu, które umożliwiają dostęp do danych na różne sposoby. Jeśli chcesz zażądać wyników na podstawie zestawu kryteriów z istniejącego zestawu danych, możesz użyć operacji wyszukiwania, takiej jak metoda find() lub findOne().

Jak czytać wszystkie pliki w Mongodb?

Gdy uruchomiony jest program Java, utwórz klienta MongoDB, tworząc instancję klasy MongoClient. GetDatabase() to metoda łączenia się z bazą danych. Metoda getCollection() zwraca obiekt dokumentu, z którego chcesz go pobrać z kolekcji.

Jak wyświetlić rekordy Mongodb?

Jeśli chcesz wyświetlić listę swoich baz danych, możesz użyć polecenia show database. Nowa baza danych (mydb) nie została utworzona. Aby wyświetlić bazę danych, należy dołączyć co najmniej jeden dokument. W MongoDB domyślną bazą danych jest test.

Czy mogę używać Javy z Mongodb?

Zanim zaczniesz używać MongoDB w swoich programach Java, musisz najpierw upewnić się, że zarówno MongoDB CLIENT, jak i Java są zainstalowane na komputerze. Aby zainstalować Javę na swoim komputerze, musisz najpierw obejrzeć samouczek Javy. Jak widać, omówimy, jak zainstalować KLIENTA MongoDB. Konieczne jest zainstalowanie słoika mongodb -driver-3.11.

Zapytanie Mongodb w Javie

MongoDB Query w Javie to potężne narzędzie, które umożliwia programistom Java dostęp do baz danych MongoDB i wykonywanie zapytań. MongoDB Query in Java API zapewnia bogaty zestaw opcji do wykonywania zapytań dotyczących danych w bazach danych MongoDB. Interfejs API obsługuje szeroki zakres opcji zapytań, w tym możliwość zapytania według przykładu, zapytania według pola i zapytania według indeksu. Query in Java API obsługuje również szereg funkcji, które ułatwiają pracę z bazami danych MongoDB, w tym możliwość łączenia się z wieloma bazami danych, możliwość automatycznego ponownego łączenia się z bazami danych oraz możliwość automatycznego ponawiania zapytań.

Dane są przechowywane w MongoDB jako BSON (zakodowana binarnie serializacja dokumentów Java Script Object Notation (JSON)), która jest zorientowaną na dokumenty bazą danych typu open source. MongoDB (system NoSQL) służy do interakcji z różnymi językami przy użyciu interfejsów API zapytań, a nie SQL. Poniższy artykuł przeprowadzi Cię przez proces korzystania ze sterownika Java w celu uzyskania dostępu do bazy danych MongoDB. GetDB() może być następnie użyty do zidentyfikowania bazy danych po jej nazwie po nawiązaniu połączenia. Innymi słowy, jeśli chcesz pobrać pojedynczy dokument z kolekcji, możesz użyć metody find(). Należy pamiętać, że sterownik Java wyświetla DBObjects jako operatory $ używane w dokumentacji MongoDB. Poniższe przykłady pokazują, jak zapisywać, aktualizować, znajdować i usuwać dokumenty.

Spring Data Nosql

Spring Data zapewnia również dodatkowe projekty, które pomogą Ci rozpocząć pracę z technologiami NoSQL, takimi jak MongoDB, Neo4J, Elasticsearch, Solr, Redis, Gemfire i Couchbase. Spring Boot zawiera również automatyczną konfigurację dla Redis, MongoDB, Neo4j, Elasticsearch, Solr Cassandra, Couchbase i LDAP.

W tym artykule dowiesz się, jak używać Spring Data (Spring Boot JPA/Hibernate) z RDBMS, takimi jak MySql/Postgress, ułatwiając przejście na NoSQL (MongoDB). Celem tego artykułu jest pokazanie, jak połączyć projekt Spring Boot z MongoDB, a także jak skonfigurować MongoDB i jak z niego korzystać. Aby połączyć się z MongoDB, będziesz mieć do wyboru jedną z trzech metod: MongoDB Compass, MongoDB Forge lub MongoDB Base. Powinienem mieć kompas i wersję 1.12 lub nowszą. Cały adres URL dostępu MongoDB zostanie skopiowany po kliknięciu przycisku kopiowania. Po uruchomieniu Compass automatycznie wybierze adres URL MongoDB z naszego schowka w poprzedniej sekcji. Wpisz swoje hasło, a następnie kliknij połącz. W rezultacie nauczyliśmy się korzystać z Spring Boot i MongoDB.

Przykład Java Mongocollection

Klasa MongoCollection służy do reprezentowania kolekcji dokumentów MongoDB. Zapewnia różne metody interakcji z kolekcją, takie jak wstawianie, aktualizowanie i usuwanie dokumentów.
Poniższy przykład pokazuje, jak utworzyć instancję MongoCollection:
importuj com.mongodb. Klient Mongo; zaimportuj com.mongodb.client. Kolekcja Mongo; import org.bson. Dokument; // Połącz się z lokalną instancją MongoDB MongoClient mongoClient = new MongoClient(); // Pobierz uchwyt do „testowej” kolekcji MongoCollection kolekcja = mongoClient.getDatabase("test").getCollection("test");

W tym rozdziale nauczymy Cię, jak zainstalować MongoDB w programach Java. Aby upewnić się, że MongoDB i Java są zainstalowane, maszyna powinna zostać skonfigurowana. Aby baza danych mogła zostać podłączona, należy podać jej nazwę. MongoDB automatycznie utworzy bazę danych, jeśli baza danych nie istnieje. Za pomocą powyższego programu uzyskuje się następujący wynik. Wszystkie dokumenty w kolekcji można przeglądać za pomocą metody find() klienta com.mongodb.client. Tutaj możesz użyć klasy MongoCollection.

Kolekcję można usunąć z bazy danych za pomocą metody drop(). W branży MongoDB pozostałe metody obejmują save(), limit(), skip(), sort() i save() limit i sort. Jest to ta sama procedura, która została zastosowana w poprzednim samouczku.

Biblioteka Mongodb Jdbc

Biblioteka MongoDB JDBC to sterownik, który umożliwia programistom Java łączenie się z MongoDB i interakcję z nim. Zapewnia bogaty zestaw funkcji, które ułatwiają pracę z MongoDB.

Natywne zapytania MongoDb mogą być wykonywane przy użyciu JDBC, w przeciwieństwie do Mongo Shell. Sterownik zawiera wszystkie te same opcje, parametry i adresy URL, co natywny sterownik Java MongoDB. Metody używane przez wywołanie metadanych bazy danych. Sterownik wydedukuje logiczną strukturę bazy danych, gdy jest wykonywany przy użyciu metody GetTables() GetColumns(). Kolekcje są natywnymi członkami MongoDatabase, które są przechowywane jako natywne obiekty przy użyciu WrappedMongoDatabase. Większość metod wykorzystuje JavaScript, ale niektóre używają obiektów Bson, które generują tylko Mapy. To był problem, którego staraliśmy się uniknąć, używając Java Proxy, ale to nie zadziałało.

Zatwierdź kod źródłowy dla każdego zapytania, które nie działa, jeśli je znajdziesz. Za pomocą diagramu graficznego DBSchema odczytuje przykładowe dokumenty z bazy danych i konwertuje je na schemat logiczny. Schemat wnioskujemy ze struktury dokumentu zbioru, czytając pewną liczbę dokumentów z każdego zbioru. DbSchema może generować wirtualne klucze obce, które zostaną zapisane w plikach projektu. Ta metoda umożliwia łatwe wyszukiwanie informacji z wielu tabel przy użyciu Relacyjnego przeglądania danych.

Bazy danych Nosql

Baza danych NoSQL to nierelacyjna baza danych, która nie korzysta z tradycyjnej struktury relacyjnych baz danych opartej na tabelach. Bazy danych NoSQL są często używane w przypadku dużych zbiorów danych i aplikacji internetowych działających w czasie rzeczywistym.

Zamiast polegać na relacyjnych bazach danych, bazy danych NoSQL przechowują dane w dokumentach. Jest zbudowany tak, aby był prosty, elastyczny i zdolny do szybkiego reagowania na wymagania nowoczesnych firm w zakresie zarządzania danymi. Bazy danych dokumentów, magazyny klucz-wartość, bazy danych z szerokimi kolumnami i bazy danych grafów to przykłady baz danych NoSQL. Firmy z listy Global 2000 szybko wdrażają bazy danych NoSQL w celu dostarczania aplikacji o znaczeniu krytycznym. Ze względu na pięć trendów, duża liczba relacyjnych baz danych jest obecnie zbyt trudna w obsłudze ze względu na wyzwania techniczne. Ze względu na ich stały model danych, relacyjne bazy danych są główną przeszkodą w zwinnym rozwoju. Model aplikacji definiuje model danych w NoSQL.

Nie jest tak, że NoSQL definiuje sposób modelowania danych. Dane mogą być przechowywane w formacie JSON w bazie danych zorientowanej na dokumenty. Zmniejsza to liczbę wymaganych platform ORM, upraszcza tworzenie aplikacji iw ogóle eliminuje potrzebę korzystania z ORM. Nowa wersja Couchbase Server 4.0 wprowadza N1QL (wymawiane nikiel), potężny język zapytań, który umożliwia tłumaczenie SQL na JSON. Ponadto można go używać do łączenia instrukcji SELECT / FROM / WHERE, organizowania (SORT BY), łączenia (LEFT OUTER / INNER) i nie tylko. Korzyści z rozproszonych baz danych NoSQL, o czym świadczy skalowalna architektura i brak pojedynczego punktu awarii, są liczne. Dostępność aplikacji internetowych i mobilnych staje się coraz ważniejsza, ponieważ coraz więcej klientów prowadzi działalność online.

Bazę danych NoSQL można szybko i łatwo zainstalować, skonfigurować i skalować. Został zaprojektowany do funkcjonowania jako biblioteka, środowisko do pisania i system przechowywania. Mogą działać w dowolnej wielkości i mogą być zarządzane i monitorowane w trybie dziennym lub tygodniowym. Rozproszona baza danych NoSQL umożliwia replikację danych między różnymi centrami danych bez konieczności stosowania dodatkowego oprogramowania. Ponadto umożliwia natychmiastowe przełączanie awaryjne aplikacji za pośrednictwem routerów sprzętowych – aplikacje nie muszą czekać, aż baza danych wykryje problem i wykonają własne. Wraz z rozwojem Internetu rzeczy (IoT) i aplikacji internetowych, bazy danych NoSQL stają się coraz bardziej popularne.

Jeśli Twoja aplikacja wymaga transakcji i spójności danych, może być konieczne rozważenie innych opcji.
Oprócz skalowalności bazy danych NoSQL często mają wady w porównaniu z tradycyjnymi bazami danych. Jeśli Twoja aplikacja przetwarza dużą ilość danych, może napotkać ten problem.
Niemniej jednak bazy danych NoSQL mają mnóstwo zalet w porównaniu z systemami RDBMS. Mogą być bardziej wydajne pod względem pojemności pamięci i przetwarzania, a także są łatwiejsze w użyciu i nauce.