본문 바로가기

컴퓨터과학(CS)

(48)
조인(오라클 기준) 항상 뭔가 레프트 조인과 라이트 조인이 헷갈렸다. 그런데 그냥 간단하게 레프트 조인을 하면 왼쪽 테이블 기준의 컬럼으로 모두 가져오고 그 컬럼 값이 오른쪽 테이블에 없다면 null을 채워주는 형식이다. 확실히 직접 실무에서 사용하면서 하니, 자연스레? 실습이 되는 기분이다. 물론 나보다 더 잘 짜신 분들과 동기들 쿼리를 보면서 읽는 것도 벅차긴 하다 ,,ㅎ
인덱스와 인덱스의 최적화 기법 요즘 sqlp 공부를 하면서 인덱스에 대해 많이 듣고,, 보고있다. 데이터도 내 생각보다 깊게 들어가면 끝이 없는 것 같다.. 그리고 뭔가 처음엔 sql을 공부하는 기분이었지만, 파고 들어갈수록 컴퓨터 구조와 데이터베이스 프로그램의 동작 원리를 배우는 기분이다.
트랜잭션의 특징과 데이터베이스의 종류 serializable 모든것을 순차적으로 수행하기에 같은 행에 접근하는 것이 절대 불가능 repeatable 한 트랜잭션이 수정한 행에 다시 다른 트랜잭션아 수정할 수 없음. 새로운 행을 추가하는 것은 가능 read committed 커밋한 것만 조회가 가능하다. 한 트랜잭션이 수정한 행을 다른 트랜잭션이 수정할 수 있다. read uncommitted 커밋되지 않아도 조회가 가능하다. 따라서 러프하게 전체 수행 수준이나 수를 아는 것에 사용하는게 좋다. 팬텀리드는 같은 쿼리를 사용하여 조회하지만 다른 값이 조회되는 증상이다. 반복 가능하지 않는 조회는 한 트랜잭션 내에서 같은 행에 두번 접근하는데 그 값이 다른 경우 더티리드는 트랜잭션을 커밋치지 않은 행을 읽을 수 있을 때 발생한다. 데이터베이스의 ..
ERD와 정규형(정규화) https://chat.openai.com/share/4919fbd6-fcf8-4e2f-a1e1-8f53b2d78ce2 ChatGPT A conversational AI system that listens, learns, and challenges chat.openai.com 1정규형, 2정규형, 3정규형, 보이스/코드 정규형, 4정규형, 5정규형이 있다. 그 중에서 1~3, 보이스/코드 정규형을 읽어보았다. 개념만 확인하였을 때는 이해가 쉽지 않았다. 물론, 그냥 단순하게 1정규형은 원자성을 지키고,, 이런식으로 암기는 쉬웠지만 그래서 강의나 예제를 통해서 이해해보았다. 실무에서 해당 정규화가 필요한 경우나 반정규화의 필요성을 느끼기 어려웠다. 물론,, 그러한 부분을 다들 고려해서 설계해서 작업을 진행..
관계와 키 https://chat.openai.com/share/d9da103e-ffda-4845-8ae6-7887ad9c444c ChatGPT A conversational AI system that listens, learns, and challenges chat.openai.com n:m 테이블이 중간에 그들을 연결해주는 중간 테이블을 가지고 있다는 것을 알았다. 슈퍼키는 유일성을 만족하고 후보키는 최소성까지 만족한다. 즉 회원의 경우 이메일만으로도 기본키를 구성할 수 있지만 이름과 이메일을 기본키로 한다면 최소성에 만족하지 않는다. 자연스럽게 뽑다가 나오는 것이 자연키 오라클의 시퀀스 같이 값이 변하지 않고 의도적으로 아이디를 부여하는 것이 인조키이다.
필드와 튜플, 릴레이션, 속성, 도메인 https://chat.openai.com/share/10d3654f-fcbb-4217-a109-7f313b8c94a1 정리하면서도 꽤나 헷갈렸다 뭐가 뭘 나타내고 어떤 것이 비슷한 의미이고 같은걸 나타내는지 ,,, 결국 릴레이션은 테이블이며 레코드와 튜플로 구성되고 필드는 속성이고 도메인의 필드가 가지는 값의 집합이다. 또한 blob, enum, set 타입을 알게 되었고 timestamp가 왜 38년까지만 표현되는지에도 관심을 가지게 되었다. enum의 경우 가끔 알고리즘을 풀 때 방향을 보기 좋게하려고 사용했었어서 상대적으로 익숙했다. blob의 경우 요즘은 blob을 사용하기 보다 s3 서비스를 통해 varchar 데이터 타입에 링크만 넘기는 식으로 하는 것이 보통이라고 한다. 또한 유동적인 길이..
DB, DBMS, 엔터티, 릴레이션
가상메모리 정리하고있는데 페이지폴트와 스와핑이 자세히 이해가지 않아서 내일 좀 더 읽어봐야겠다..
메모리, 캐시 히트, 캐시미스, 웹사이트 캐시 오늘은 메모리에 대한 부분을 읽었다. 그 중에서도 캐시에 대해 자세히 쓰여있었다. 캐시는 자주 사용하는 데이터를 임시 저장하는 것이고 CPU와 메모리 사이의 속도를 조절하여 병목현상을 방지한다. 사실 나도 최근에 캐시때문에 애를 먹은 적이 있다. 개발하던 중, xml 파일을 변경하고 서버를 리스타트 하였는데도 수정사항이 반영되지 않아 한참 고민하다 크롬 캐시를 삭제하고 리로드하니 정상적으로 동작하였다. 물론 그게 웹사이트를 닫아도 남아있던 거 보면 아마,,, 로컬 스토리지이지 않을까 싶다 ㅎ 물론 어디까지나,, 내가 개발하면서 느낀 추측이고 해당 내용이 맞다고 할 수 는 없을 것 같다. https://chat.openai.com/share/c76b93f8-97ca-4fd7-a3a4-0c1e7e3bf39f..
컴퓨터를 구성하는 것들 인터럽트에 대해 다시 공부하면서 이전에 정리했던 것과 들었던 강의를 다시 보았다. 자세히는 기억 나지 않았지만 살짝 살짝 기억나고 빠르게 들어도 이해가 되었다.