분류 전체보기 49

[Database] Ch10.Dictionary

Dictionary정의관리 데이터테이블로 존재함. 뷰와 테이블 정보 주석으로 설명메타 정보 . 데이터의 데이터저장되는 정보 : View (Read Only) + Tableoracle server 사용자명허가된 권한 role, privilege객체명( table, sequence, view, index 등)감사 정보어느 테이블에 누가 무엇을 했는지 동작 기록테이블 제약조건 constraint테이블 정보와 따로 저장됨오라클이 sys.con$ 테이블에 실제 제약조건 저장함. ( $ 시스템 테이블임을 구분하기 위해 붙임)사용자가 직접 sys.con$ 테이블에 접근할 수 없고, 뷰를 통해 user_constraints 을 통해 확인가능-- 사용자의 제약정보 select * from user_constraints;..

Database 2025.05.11

[Database] Ch11.DDL 데이터 정의어

DDL저장 구조에 대한 명령어DB 구조 명령어DROP테이블 삭제자동 commit 되어 롤백 불가.인덱스까지 삭제됨표현 drop table 테이블명 [cascade constraints] ;cascade constraints 옵션삭제하고자 하는 테이블(A)을 참조하는 다른 테이블(B)의 제약조건을 삭제함A의 PK가 B의 FK로 존재cascade 옵션 있을 때, 자식 테이블에 데이터 삽입 시 부모 테이블의 PK 컬럼이 가진 데이터가 아니어도 삽입 가능A (부모) 테이블이 삭제 되었기 때문.데이터 유무와 무관하게, FK 제약조건 자체가 DROP을 막는다. 제약조건이 있을 때, 자식 테이블에 데이터가 없어도 부모 테이블 삭제 불가.제약조건이 메타 데이터로 존재함.ALTER - 4테이블에 컬럼 추가표현 alter..

Database 2025.05.11

[Database] Ch09. Transaction Control

트랜잭션 TransactionSQL을 여러개 묶어 놓은 것함께 수행되어야 하는 논리적인 업무의 작업 단위ex. 계좌 이체 ( 출금 sql, 입금 sql 로 구성)특징all or nothing트랜잭션 내의 모든 sql문이 성공해야 commit이 되고 그렇지 않으면 트랜잭션의 맨처음 sql 문으로 이동트랜잭션에 많은 sql문이 있는 경우 (작업 단위가 큰 경우) saverpoint를 두고, savepoint 까지만 rollboack(취소)할 수 있음.라이프 사이클 과정트랜잭션 시작DDL, DCL 문이 실행되면 begin transaction 없이도 암묵적으로 트랜잭션 시작트랜잭션 종료 commit, rollbackcommit, rollback 호출해야 트랜잭션이 종료. 리소스 해제됨.DDL, DML 차이 :..

Database 2025.05.06

[Database] Ch08. Constraint 제약조건

제약조건 Constraint사용 이유 ⭕데이터 보호, 데이터 무결성(integrity)을 유지하기 위해 제약 조건이 필요데이터 보호 : DB에 잘못된 데이터가 들어가는 것을 막음 ex. [ JAVA ] 캡슐화if문으로 무결성을 체크함.종류 - 5 ⭕ 암기PK = NOT NULL + UNIQUEUNIQUE 여러 행이 같은 컬럼 혹은 같은 컬럼 조합에 대해 같을 값을 가지는 걸 막음. 단, NULL값을 여러 행이 가져도 됨.FKCHECK (조건)사용자 정의 조건 [참고 ] ORACLE Contraint -5 정리특징데이터 사전에 제약조건 저장됨제약 조건 이름은 한 사용자에서 중복 불가특성무결성 integrity데이터 결함이 없음.cf.영속성 persistent한번 저장한 데이터가 유지되는 것. DB 쓰는 이..

Database 2025.05.05

[Database] Ch2.테이블 생성 및 데이터 조작(DML) Ch3.데이터검색 Ch4. Stored Function

데이터 타입VARCHAR 가변 문자열 cf.VARCHAR2 는 안씀CHAR 고정 문자열. 1~ 2자리NUMBER 부동 소수점 38자리까지 NUMBER(p,s)전체 자리수 (점 미포함) p 자리실수부 개수 s정수부 최대 자릿수 = p – s전체 7자리, 정수는 7 - 2 = 5자리까지만 가능. 2는 소수자리 개수. 정수만 7자리 전체 쓸 수 없음.ex. NUMBER(7,2)음수 저장 가능DATE 날짜.시간 : 연속적, 정수DB 저장 시 정수형태로 저장됨. 사람이 읽을 떄만 쪼개서 사용함.LONG 큰 TextRAW LONGRAW 큰 Binary SQL 명령어 종류Data Retrieve 데이터 검색 조회SELECT ReadDML은 Write만 가능한 것Data Manipulation Language DDL ..

Database 2025.05.04

[Database] Ch01. Introduction (SQL의 정석)

SQL데이터베이스에 요청할 때 사용하는 자연어가 아닌 언어.Structured 구조화 되어있다. = 문법이 있다. 자연어가 아니다.Query 질의Language 언어. 자연어 아님자료구조(링크드리스트)에서 발전된것이 데이터베이스RDB 관계형- 데이터끼리 관계를 맺어줌이유: 중복제거를 위해 쪼갬구조Map K, V장점: 대용량 처리.단점: 순서 X → 정렬, 범위 검색 불가.→ Tree 사용발전과정DB → RDB → ORDB → NoSQL → 벡터 DB벡터 DB의 경우 데이터를 숫자로 저장(임베딩)하여 요소간 관계를 확인참고LLM은 자연어로 SQL로 질의하는것 까지만 커버함.RDB와 NoSQL기준 RDB NoSQL 정형(형태 고정)비정형(형태 비고정)활용 랭킹, 팔로잉-팔로워 RDB보완으로 같이 사용용어F..

Database 2025.05.01

[Database] Ch06.JOIN - 문제 풀이

현재 SELF JOIN까지 풀었습니다. 틀린 답이 있을 수도 있습니다.tabase[Database] Ch05.SubGroup으로 데이터 분류 - 문제 풀이6.4 EQUIJOIN 예 - 예제 91. 직원(S_EMP) 테이블과 부서(S_DEPT)테이블을 JOIN하여, 사원의 이름과 부서, 부서명을 나타내시오.select e.name, e.dept_id, d.namefrom s_emp e, s_dept d where e.dept_id = d.id; 6.5 칼럼과 테이블의 ALIAS사용 - 예제 101. 서울 지역에 근무하는 사원에 대해 각 사원의 이름과 근무하는 부서명을 나타내시오. select distinct e.name, d.name from s_dept d, s_region r, s_emp ewhere..

Database 2025.04.30

[Database] Ch05.SubGroup으로 데이터 분류 - 문제 풀이

Intro직접 풀어봤으며, oracle sql developer 의 질의 결과와 직접 스프레드 시트에 값을 샘플링하여 비교했습니다. SQL 정석 문제입니다. 5.2 Group By절 - 예제 51. 각 부서(dept_id)별 평균 급여를 계산해서 보여주시오. select dept_id, avg(salary)from s_empgroup by dept_id;--order by dept_id;2. 각 부서(dept_id)별로 직책이 사원인 직원들의 평균 급여를 계산해서 보여주시오. select dept_id as "부서", avg(salary) as "평균 급여"from s_empwhere title = '사원'group by dept_id; 5.3 select 절에서의 group함수의 잘못된 사용1. 각 지..

Database 2025.04.30

[커널아카데미] 백엔드 12기 6주차 - SQL과 객체지향 엮어보기, SQL은 상상력이 필요함, 간절함이란?

Intro 1주일 중 기억에 남는 회고의 일부를 가져왔다. 0428 월 - 안다고 착각하지 말기자바 모듈 테스트에서 객체지향 개념까지는 제대로 알고있겠지 했지만, 1시간이 촉박했고 제대로 쓰지 못한 것이 있었다. 반복해야겠다 또 생각들었던 하루였다. 연산자 우선순위 ,규칙있는 반복문(1~9,/ 1~3) ,별찍기, 실수형 비교, 반올림( + 0.5 ) , 배열 퀴즈 패턴 풀기생성자 조건 - 모든클래스에 1개 이상의 생성자가 있어야함. ( 매개변수 타입 또는 개수는 오버로딩), 반환 타입 없음. (반환타입에 영향이 없음.) → 오버라이딩 조건이랑 헷갈림객체 지향 특징 3가지 - 기존 프로그래밍언어에 규칙 추가 / 코드 재사용 높음 / 변경 유리. 0429 화 - SQL 과 객체지향 엮어보기 == 감동오늘은..

회고 2025.04.29

예술적인 코드 모음 (계속 업데이트)

주관적입니다.HashMap 클래스의 put() 메서드의 구현부 목적 : 튜닝. Hash 자료구조는 O(1) 성능을 목표로함. 읽고 쓰기가 빈번한 작업을 최소화할 필요있음방법 : 인스턴스 변수 읽기(접근) 1번으로 줄임.인스턴스 변수 접근 최소화하기 위해 바로 로컬 변수 (tab)에 대입.조건식을 항상 검사하므로, tab 에 table 참조변수에 저장된 주소가 대입됨. 첫 의문증 : 왜 대입문을 if문 조건식 내부에 작성했나? 밖에 있으면 안되나? 실제 Key와 Value를 저장하는 1차원 배열과 링크드 리스트로 구성된 객체 자체를 가리키기 위해 putVal() 메서드 내부에서 tab에 table 참조변수에 저장된 주소를 대입해야한다. 근데 코드 봤는데 'tab = table' 대입문이 없었다. 자세..

Java 2025.04.29