Database 11

DATABASE #11. Spring X SQL X JSP Onboarding

1. 전체 구성 계층 (Spring MVC 구조 기준)개념 구조Controller클라이언트의 요청을 받아 처리 흐름을 제어서비스 계층을 호출해 필요한 데이터를 가공하고, View로 전달Service비즈니스 로직을 처리하는 계층Controller와 Repository 사이에서 데이터 흐름을 조율Repository (DAO)데이터베이스와 직접 통신하는 계층JPA를 통해 SQL과 매핑되는 메서드 작성 (예: findAll, save 등)Entity (Domain)데이터베이스 테이블과 1:1로 매핑되는 클래스주로 @Entity, @Table, @Id, @Column 등의 JPA 어노테이션으로 구성JSP (View)사용자가 실제로 보게 되는 화면Controller에서 받은 Model 데이터를 표현JSTL, EL(..

Database 2025.06.02

Database #10. DDL ,DML in SQL

DDL (Data Definition Language)주요 명령어CREATE TABLE: 테이블 생성ALTER TABLE: 테이블 스키마(구조) 변경 (컬럼 추가/수정/삭제 등)DROP TABLE: 테이블 삭제 (스키마 + 데이터 완전 삭제)RENAME: 테이블 이름 변경TRUNCATE TABLE: 데이터만 삭제 (스키마 유지)COMMENT: 주석 달기 (테이블, 컬럼 설명)테이블 생성CREATE TABLE book ( id NUMBER, title VARCHAR2(100), author VARCHAR2(50));Subquery로 생성CREATE TABLE empsales ASSELECT * FROM empWHERE job = 'SALES';ALTER TABLE (테이블 구조 변경)컬럼 추가ALTE..

Database 2025.06.01

DATABASE #9. SQL X .CSV IMPORT + TIPS

이번 포스트에서는 Oracle DB를 기준으로 SQL 실습을 하며 겪은 여러 개념과 문제 해결 과정을 정리해보겠습니다..1. FOREIGN KEY와 INSERT 순서employee 테이블의 superssn은 같은 테이블의 ssn을 참조하는 외래키입니다. 이 경우 상사(superssn)가 될 사원의 데이터가 먼저 삽입되어 있어야 하며, 그렇지 않으면 다음과 같은 오류가 발생합니다:ORA-02291: integrity constraint violated - parent key not found해결 방법상사 레코드를 먼저 삽입한 뒤, 참조하는 레코드를 삽입INSERT 시 오류가 나더라도 전체를 무시하고 진행하면 이후에 수동 수정 필요 사실 베스트는, 나중에 제약사항을 추가하는것 (무결성 원칙 위배 가능성을 ..

Database 2025.05.28

DATABASE #8. Mac에서 Oracle DB 부활시키기

소프트웨어 업데이트나 뭐 등등 실수로 맥을 셧다운했거나, docker에서 구동되고 있는 colima를 꺼버렸다면 당황할 것입니다.저도 그랬구요. 그래서 다시 부활시키는 꿀팁을 포스팅합니다. 보든가 말던가!Oracle 11g XE를 Docker로 한 번 설치한 뒤, Mac을 재시작하거나 Colima를 껐다가 다시 켰을 때도 손쉽게 다시 실행하는 방법을 정리합니다.실습 계정 test_user도 그대로 유지됩니다. 1. Colima를 x86_64 모드로 시작colima start --arch x86_64 --memory 4Oracle Docker 이미지는 Intel(x86_64) 아키텍처 기반이기 때문에 반드시 Colima도 해당 모드로 실행해야 합니다. 2. Oracle Docker 컨테이너 다시 실행d..

Database 2025.05.11

DATABASE #7. Mac X SQL 일어날 수 있는 문제

Mac 환경에서 SQL을 돌리는데는 이전 글에서 성공했다 그러나. 터미널이 무작위로 닫혔거나 꺼졌을때 발생할 수 있는 문제가 있습니다.Colima 자체가 꺼질 수 있다면?-> (Colima는 가상머신이니까 Mac을 끄거나 재부팅하면 Colima 세션도 같이 종료됨)Colima가 꺼지면, Docker 데몬도 제대로 작동하지 않아서 컨테이너를 직접 만질 수 없습니다. 따라서 그런 상황이 발생하면 아래와 같은 단계를 따르시면 됩니다.colima start --arch x86_64로 가상머신 다시 켠다.docker start oracle-xe-11g-container로 오라클 컨테이너 다시 켠다.그 후 sqlplus, SQL Developer 다 정상적으로 접속 가능해진다. ✅ 1. Colima 다시 시작M..

Database 2025.04.29

DATABASE #6. SETTING SQL DEVELOPER at MAC

SQL Developer를그냥 Mac에서 활용할 수는 없다.내가 쓰고있는 M2 mac은 기본적으로 교수님이 활용하시는 오라클 DATABASE 설치를 공식 지원하지 않는다.특히 수업시간의 Oracle 11g는 구 버전임, Mac에서는 일반적으로 활용이 불가능하다.SQL developer 개발 환경은 Mac용이 있지만 , DB 서버 (오라클) 자체가 설치가 불가능했던 것이다. 우회 해결 아이디어1. Docker 에서 Oracle 11g가 설치된 리눅스 기반 x86_64 IMAGE를 다운 받는다.도커는 알다시피 이미지 기반으로 설치되고 동작이 가능하다.필자는 christophesurmont/oracle-xe-11g -> 이 이미지를 다운 받았다. 2. Colima로 가짜 intel 가상 컴퓨터를 만든다.우리..

Database 2025.04.28

DATABASE #5. TO SQL

SQL의 성격 : Multiset Relational Algebra1. Multiset (중복 허용) 관계대수SQL은 중복을 허용하는 Multiset 시멘틱을 따른다.Pure Relational Algebra는 중복을 제거하지만, SQL 스타일로는 중복을 유지해야 한다.예시:{1, 1, 1, 2, 2} // 중복 허용, 제거하지 않음2. SQL 기본 구조SELECT: 선택할 속성(attribute) 지정FROM: 조회할 테이블 지정WHERE: 조건 지정3. SQL 구성 요소DDL (Data Definition Language): 스키마 정의DML (Data Manipulation Language): 데이터 조작DCL (Data Control Language): 데이터 접근 권한 제어DDL에서 가능한 작..

Database 2025.04.28

DATABASE #4. Relational Algebra 2

관계대수(Relational Algebra) 개념 정리와 실전 예시관계대수는 관계형 데이터베이스를 수학적으로 표현하는 언어로, 절차적인 언어입니다. 즉, 데이터를 어떤 방식으로 추출할지를 단계별로 명시합니다. SQL과는 달리 연산의 순서가 중요하고, 연산 결과도 항상 릴레이션(테이블)입니다.1. 관계대수의 6가지 기본 연산 (복습)Select (σ): 수평 부분집합, 조건에 맞는 튜플만 선택Project (π): 수직 부분집합, 특정 속성만 선택 (중복 제거)Union (∪): 두 릴레이션의 합집합Set Difference (-): 차집합 (A에서 B를 뺀 것)Cartesian Product (×): 두 릴레이션의 곱집합Rename (ρ): 릴레이션이나 속성 이름 변경※ 모든 연산 결과는 새로운 릴레이션..

Database 2025.04.27

DATABASE #3. Relation Algebra

관계대수(Relational Algebra) 개념 정리와 실전 예시관계대수는 관계형 데이터베이스를 수학적으로 표현하는 언어로, 절차적인 언어입니다. 즉, 데이터를 어떤 방식으로 추출할지를 단계별로 명시합니다. SQL과는 달리 연산의 순서가 중요하고, 연산 결과도 항상 릴레이션(테이블)입니다.1. 관계대수의 6가지 기본 연산Select (σ): 수평 부분집합, 조건에 맞는 튜플만 선택Project (π): 수직 부분집합, 특정 속성만 선택 (중복 제거)Union (∪): 두 릴레이션의 합집합Set Difference (-): 차집합 (A에서 B를 뺀 것)Cartesian Product (×): 두 릴레이션의 곱집합Rename (ρ): 릴레이션이나 속성 이름 변경※ 모든 연산 결과는 새로운 릴레이션입니다.2..

Database 2025.04.27

DATABASE #2. RELATIONAL DATABASE

관계형 데이터베이스 핵심 개념 정리관계형 데이터베이스(Relational Database)는 구조화된 데이터를 효율적으로 저장하고 검색하기 위해 널리 사용되는 모델입니다. 이 글에서는 관계형 모델의 핵심 용어부터 트랜잭션의 ACID 원칙까지, 핵심 개념들을 정리합니다. 1. 관계형 모델의 기본 용어 (Relational Model Terminology)용어의미Domain하나의 속성이 가질 수 있는 값들의 집합. 예: 학번은 숫자 8자리Attribute릴레이션의 열(Column). 속성. 기본적으로 NULL 포함 가능Tuple릴레이션의 행(Row). 한 명의 학생 정보 등Relation튜플들의 집합. 즉, 하나의 테이블Database여러 릴레이션(테이블)들의 집합2. 스키마와 인스턴스Schema (스키마..

Database 2025.04.27