[Oracle] 위, 아래 ROW 값 가져오기(LAG, LEAD)
2021. 7. 14. 20:12
프로그래밍/SQL
LAG 함수 이전 행(ROW)의 데이터 가져오기 LAG(REGION_ID) OVER (ORDER BY REGION_ID) SELECT STUDENT_ID, STUDENT_NAME, LAG(STUDENT_ID) OVER (ORDER BY STUDENT_ID) 이전행ID, LAG(STUDENT_NAME) OVER (ORDER BY STUDENT_ID) 이전행NAME FROM STUDENT ORDER BY STUDENT_ID LEAD 함수 다음 행(ROW)의 데어터 가져오기 LEAD(REGION_ID) OVER (ORDER BY REGION_ID) SELECT STUDENT_ID, STUDENT_NAME, LEAD(STUDENT_ID) OVER (ORDER BY STUDENT_ID) 다음행ID, LEAD(ST..
SQL과 NoSQL
2020. 12. 24. 15:04
프로그래밍/SQL
SQL과 NoSQL 대부분의 경우 SQL로 다 커버가 가능 NoSQL은 특별한 경우에 대응하기 좋은 DB임 NoSQL Not only SQL or Not SQL 1️⃣ Document DB mongoDB가 대표적인 예시 보통의 SQL처럼 행과 열이 존재하는 것이 아니라 데이터를 json document형태로 저장 SQL은 데이터의 구조가 엄격함 but mongoDB는 원하는 어떤 형태든 저장가능하고 데이터가 같은 모양일 필요 없음 2️⃣ Key Value DB 엄청 빠르게 많이 써야하고 많이 읽어야 할때 사용함 CassandraDB와 DynamoDB가 대표적인 예시 CassandraDB는 column wide database유형이기도 함 또한 읽고, 쓰기가 엄청 빠름 (많은 수의 아이템을 1초만에 쓸 수..
09.17(정규화 예제)
2020. 9. 17. 20:30
프로그래밍/SQL
예시 테이블> 학생번호 학생명 수강과목번호 수강과목명 학점 s001 권정열 c101, c102 Oracle, JDBC A+, B+ s002 박보검 c102, c103 JDBC, Servlet/JSP A, C 1NF 더 이상 쪼갤 수 없는 원자값으로 나눔 학생번호 학생명 수강과목번호 수강과목명 학점 s001 권정열 c101 Oracle A+ s001 권정열 c102 JDBC B+ s002 박보검 c102 JDBC A s002 박보검 c103 Servlet/JSP C 2NF 부분함수 종속 제거 학생번호를 알면 학생명 알 수 있음(결정자-종속자 관계) 수강과목번호를 알면 수강과목명 알 수 있음 학점은 학생번호와 수강과목 번호 둘다에 종속 학생번호 수강과목번호 학점 s001 c101 A+ s001 c102 B+..
09.16(정규화)
2020. 9. 16. 20:11
프로그래밍/SQL
관계모델 용어 정리 table = entity = relation 행 = tuple = row 열 = attibute = column = field 제약조건 1. 무결성 제약 조건 한 객체에 저장되는 데이터를 제한하는 조건 제약조건 설명 도메인 제약조건 각 튜플의 애트리뷰트는 도메인에 속하는 값이어야 함 즉, 도메인이 Integer면 Integer값만 저장될 수 있음 엔티티 무결성 제약조건 기본 키 값은 NULL이 될 수 없음 참조 무결성 제약조건 어떤 릴레이션 A의 튜플이 다른 릴레이션 B의 튜플을 참조하려면, 참조하려는 그 튜플은 릴레이션 내에 존재해야 함 외래키(FK)는 참조 무결성 제약조건을 만족해야 함 *외래키 : 다른 릴레이션의 key 애트리뷰트를 참조하는 애트리뷰트 2. 키 제약 조건 서로 ..