databaser Flashcards
Beskriv vad relationsdatabaser är och hur data organiseras i dessa
Bra för strukturerat data i tabeller och fält/kolumner.
När varje post är lika som övriga poster i en tabell.
Har ofta relationer mellan olika tabeller.
Ge exempel på några av de mest använda databasservrarna
Oracle MySQL Microsoft SQL server Maria DB Percona
Namnge de vanligaste icke realtionsdatabaser/NoSQL
Mongo DB
Redis
(Apache)
Ge exempel på situationer där andra typer av databaser kan vara lämpliga
NoSQL är bra för ostrukturerat data som dokument, poster med olika struktur(och molnbaserad data)
JSON liknande data
Ange SQL kommandona
SELECT
INSERT
UPDATE
DELETE
SELECT
SELECT FROM WHERE (=, LIKE) (Kan vara subqueries) GROUP BY HAVING (Samma som WHERE men kan använda aggregerande funktioner) ORDER BY (asc, desc)
INSERT
INSERT INTO
VALUES ( )
UPDATE
UPDATE
SET
WHERE
DELETE
DELETE FROM
WHERE
TRUNCATE
Tömmer tabellen (FARLIG)
Skillnaden mellan WHERE och HAVING
HAVING kan använda aggregerande funktioner. HAVING kan ej användas utan GROUP BY
Aggregerande funktioner
Count( ) = antal Min ( ) = minimum Max ( ) = maximum Sum ( ) = summan Avg ( ) = medelvärde
ALIAS för fält och tabeller
gammalt namn AS nytt namn
JOINS
A LEFT JOIN B (Outer join) = Allt från A och allt de delar
A RIGHT JOIN B (Outer join) = Allt från B och allt de delar
A FULL JOIN B (Full outer join) = Allt från A och B
A INNER JOIN B = Allt dom delar
Skapa en enkel databas med SQL som innehåller relationer
DROP DATABASE IF EXISTS x_database;
CREATE DATABASE x_database;
USE x_database;
CREATE TABLE x ( x_id INT NOT NULL AUTO_INCREMENT, x_name VARCHAR (255) NOT NULL, o_id INT NOT NULL, PRIMARY KEY (x_id), FOREIGN KEY (o_id) REFERENCES o (o_id) );
Fyll databas med innehåll
INSERT INTO x (name, o_id)
VALUES
(‘xnamn’, 1),
(‘xextranamn’, 2);
Ge exempel på olika datatyper i SQL och vad de motsvarar i java
JAVA | SQL int INT String VARCHAR String TEXT String CHAR double DECIMAL float DECIMAL Date DATE byte TINYINT short SMALLINT long BIGINT
Vad är JDBC?
Java Database Connectivity
JDBC är ett API för Java som definerar hur en klient når en databas. Ett API för att koppla och exekvera ett query med databasen.
Java app JDBC JDBC driver Database
Vilka grund komponenter ingår i JDBC API
Connection - Interface med metoder för att kontakta databasen
Statement - Argumentet du vill att databasen ska ta emot
PreparedStatement - Argumentet du vill att databasen ska ta emot fast på ett säkrare sätt
ResultSet - Objektet som håller datan som hämtas från databasen efter ett statement har gjorts
Beskriv vad som krävs för att använda JDBC och hur ett projekt sätts upp
Hämta connection till databasen via Drivern med hjälp av DriverManager och URL, användarnamn, lösenord.
Steps:
- Establish connection to a database
- Create Statement object
- Execute SQL query
- Proccess the ResultSet
Vad är en ORM?
Object Relational Mapping - Konverterar data mellan relationsdatabaser och objektorienterat programmeringsspråk.
Varför är ORM användbar?
Gömmer detaljer för SQL queries.
Gör så att man slipper skriva SQL kommandon själv.
Redogör för Hibernate arkitekturen
Java app — Persistent object — Hibernate — JDBC — Database
Mappings = Java app, Persistent object
Configuration = Hibernate, JDBC, Database
Configuration —> Session Factory —> Session(Transaction) —> Query, Criteria
Centrala klasser i Hibernate och vad dom bidrar med
- javax.persistence.entity
- javax.persistence.table
- javax.persistence.id
- javax.persistence.generatedValue
- javax.persistence.column
- javax.persistence.oneToMany