728x90 반응형 Data/Database9 [Oracle/MySQL] Foreign KEY 제약 조건을 위배하는 레코드(로우) 찾기 - Duplicate 중복 에러 Oracle -> MySQL로 데이터 마이그레이션 중 다음과 같은 에러가 발생했다. SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails 마이그레이션 순서가 테이블 생성 -> 데이터 insert -> PK, index, Foreign Key 생성 ..으로 이어지는데, 중복되는 데이터때문에 Foreign Key를 추가할 수 없다는 오류였다. 중복되는 레코드를 찾아서 삭제하려고하는데 데이터의 양이 많을 경우 하나 하나 찾기는 불가능하다. 그럴때에는 다음과 같이 left join을 이용하여 중복 레코드를 쉽게 찾을 수 있다. // au_task - ch.. 2021. 3. 24. [Database] 단계별 데이터베이스 설계 과정 모든 구성원들의 다양한 요구를 만족시키는 데이터베이스의 구축은 쉽지 않은 일이다. 특히 데이터의 양이 많고 사용자의 수가 많을수록 데이터베이스 구축 작업은 무척이나 어렵고 복잡한 작업이 아닐 수 없다. 잘못된 데이터베이스의 구축으로 일어나는 문제들을 예방하려면 제대로 된 데이터베이스의 구축이 필수적인데, 이를 위해서는 체계적인 데이터베이스 설계 과정이 필수적이다. 체계적인 데이터베이스 설계 과정을 통해 데이터베이스가 올바르게 구축되어야만 업무를 빠르고 정확하게 수행할 수 있다. 단계별 데이터베이스의 설계 순서 5가지는 다음과 같다. 1단계 : 요구 사항 분석 - 요구 조건 명세서 작성 요구 사항 분석 단계에서는 데이터베이스의 사용 용도를 파악한다. 데이터베이스를 실제로 사용하는 사용자에게 필요한 데이터의.. 2021. 2. 13. [DB] Oracle / MySQL - 특정 컬럼이름으로 테이블 찾기 생각보다 자주 필요한 쿼리.. SELECT TABLE_NAME, COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE COLUMN_NAME LIKE 'AW_NUMBER' AND TABLE_NAME LIKE 'ALL%' 2021. 2. 1. [DB] 3단계 데이터베이스-외부/개념/내부스키마 DBS(DataBase System) 데이터베이스에 데이터를 저장하고, 이를 관리하여 조직에 필요한 정보를 생성해주는 시스템 데이터베이스 시스템 = 데이터베이스 + 데이터베이스 관리 시스템 스키마(Schema) 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것 스키마 : 데이터베이스 : 테이블 = 평면도 : 집 : 방 인스턴스(Instance) 스키마에 따라 데이터베이스에 실제로 저장된 값 / 개체 인스턴스 = 레코드 3단계 데이터베이스 구조 - 데이터베이스를 쉽게 이해하고 이용할 수 있도록 하나의 데이터베이스를 관점에 따라 세 단계로 나눈 것 - 미국 표준화 기관인 ANSI/SPARC에서 제안 - 각 단계별로 다른 추상화(abstraction) 제공 (내부단계에서 외부단계로 갈수록 추상화 레벨.. 2020. 12. 17. [DB] Transaction과 ACID Transaction (all or nothing) 여러 작업들을 하나로 묶은 단위 또는 연산들로 한 덩어리의 작업들은 모두 실행이되거나, 실행되지 않는다. 트랜잭션을 통하여 데이터의 유효성을 보장한다. ACID 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어 Atomicity(원자성) 모든 작업이 반영되거나 모두 롤백되는특성 Consistency(일관성) 데이터는 미리 정의된 규칙에서만 수정이 가능한 특성을 의미한다. (숫자컬럼에 문자열컬럼 X) Isolation(고립성) A와 B 두개의 트랜잭션이 실행되고 있을 때, A의 작업들이 B에게 보여지는 정도를 의미한다. Durability(영구성) 한번 반영(커밋)된 트랜잭션의 내용은 영원히 적용되는 특성을 의미한다. Commit이란.. 2020. 12. 16. [DB] 데이터베이스 관리 시스템 파일 시스템 (file system) - 데이터를 파일로 관리하기 위한 소프트웨어 - 응용 프로그램마다 필요한 데이터를 별도의 파일로 관리함 (ex. 고객관리 / 주문관리 중복) 파일 시스템의 문제점 - 같은 내용의 데이터가 여러 파일에 중복 저장됨 저장 공간의 낭비는 물론 데이터 일관성과 데이터의 무결성을 유지하기 어려움 - 응용 프로그램이 데이터 파일에 종속적 사용하는 파일의 구조를 변경하면 응용 프로그램도 함께 변경해야 함 - 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족함 - 응용 프로그램 개발이 쉽지 않음 DBMS (DataBase Management System) - 데이터베이스 관리 시스템 - 파일 시스템의 문제를 해결하기 위해 제시된 소프트웨어 (중복성X / 종속성 X) - 조직.. 2020. 12. 13. [DB] 데이터베이스의 정의와 특성 데이터베이스의 정의 특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 저장한 운영 데이터의 집합 공유 데이터 특정 조직의 여러 사용자가 함께 소유하고 이용할 수 있는 공용 데이터 통합 데이터 최소의 중복과 통제 가능한 중복만 허용하는 데이터 저장 데이터 컴퓨터가 접근할 수 있는 매체에 저장된 데이터 운영 데이터 조직의 주요 기능을 수행하기 위해 지속적으로 꼭 필요한 데이터 데이터베이스의 특성 실시간 접근 사용자의 데이터 요구에 실시간으로 응답 계속 변화 데이터의 계속적인 삽입, 수정, 삭제를 통해 현재의 정확한 데이터를 유지 동시 공유 서로 다른 데이터의 동시 사용뿐만 아니라 같은 데이터의 동시 사용(공용데이터)도 지원 내용 기반 참조 데이터가 저장된 주소나 위치가 아닌 내용으로 참조 ex).. 2020. 12. 13. [DB] 데이터베이스 기본 개념 데이터(Data) 현실 세계에서 단순히 관찰하거나 측정해 수집한 사실이나 값 정보(Information) 의사 결정에 유용하게 활용할 수 있도록 데이터를 처리한 결과물 데이터 -> 가공-> 정보 정보 처리(information processing) 정보 시스템 조직 운영에 필요한 데이터를 수집하여 저장해두었다가 필요할 때 유용한 정보를 만들어 주는 수단 데이터베이스 정보 시스템 안에서 데이터를 저장하고 있다가 필요할 때 제공하는 역할을 담당 응용 시스템 한 부서를 위한 서브 시스템, 응용 프로그램으로 구성 경영 정보 시스템 (MIS) - 경영특화 - 기획, 운영, 통제 의사 결정 지원 시스템 (DSS) - 정보 시스템과 비슷하나, 좀 더 넓은 의미 - 광의의 정보 시스템 - 데이터 웨어하우스 (데이터 저.. 2020. 12. 13. 복잡한 쿼리를 작성해야 할 때, 어떻게 해야 할까? 정답은 없다. 오히려 정답이 있는 것이 이상하다. 조회 대상 테이블과 컬럼, 원하는 결과가 때에 따라 모두 다르기 때문이다. 하지만 마음을 가다듬고 차근차근 작성한다면 불가능한 일은 없다. 예로부터 전해오는 복잡한 문제를 풀 때 사용하는 방법이 있는데, 바로 “분할해서 정복하라(Divide & Conquer)” 이다. 복잡한 쿼리를 작성할 때에도 작은 단위로 분할한 뒤, 다시 합치면 의외로 간단히 해결할 수 있다. (1) 최종적으로 조회되는 결과 항목을 정의한다. (2) 필요한 테이블과 컬럼을 파악한다. (3) 작은 단위로 분할해서 쿼리를 작성한다. (4) 분할한 단위의 쿼리를 하나로 합쳐 최종 결과를 산출한다. (5) 결과를 검증한다. 참고서적:https://thebook.io/006696/ 2020. 7. 29. 이전 1 다음 728x90 반응형