{"id":18757,"date":"2024-01-29T05:41:48","date_gmt":"2024-01-29T05:41:48","guid":{"rendered":"https:\/\/www.prepbytes.com\/blog\/?p=18757"},"modified":"2024-01-29T05:41:48","modified_gmt":"2024-01-29T05:41:48","slug":"finding-attribute-closure-and-candidate-keys-using-functional-dependencies","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/","title":{"rendered":"Finding Attribute Closure and Candidate Keys using Functional Dependencies"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1706506866611-Finding%20Attribute%20Closure%20and%20Candidate%20Keys%20using%20Functional%20Dependencies.png\" alt=\"\" \/><\/p>\n<p>In the realm of database design, understanding the relationships between attributes is crucial for creating efficient and reliable databases. Functional dependencies serve as the building blocks for these relationships, and two essential concepts that emerge from them are attribute closure and candidate keys. In this article, we will explore the process of finding attribute closure and candidate keys using functional dependencies.<\/p>\n<h2>What is Functional Dependencies?<\/h2>\n<p>Functional dependencies express relationships between sets of attributes in a relational database. If we have a set of attributes X and Y, denoted as X \u2192 Y, it means that the values of Y are uniquely determined by the values of X. For instance, in a table with attributes (A, B, C), if A \u2192 B, it implies that for every unique value of A, there is a unique corresponding value of B.<\/p>\n<h2>What is Attribute Closure?<\/h2>\n<p>Attribute closure is a concept that helps us understand the complete set of attributes that can be functionally determined by a given set of attributes. The closure of an attribute set denoted as closure(X), is the smallest set of attributes that includes X and satisfies all the functional dependencies present in the database.<\/p>\n<h3>Steps to Find Attribute Closure:<\/h3>\n<ul>\n<li><strong>Initialization:<\/strong> Start with the given set of attributes, X. Set the closure as X itself.<\/li>\n<li><strong>Closure Computation:<\/strong> Iteratively apply functional dependencies to expand the closure. If there is a functional dependency A \u2192 B and A is already in the closure, add B to the closure.<\/li>\n<li><strong>Repeat until No Change:<\/strong> Keep iterating until the closure no longer changes. The resulting closure represents the complete set of attributes that can be determined by the initial set X.<\/li>\n<\/ul>\n<h2>What is Candidate Keys?<\/h2>\n<p>Candidate keys are minimal sets of attributes that uniquely identify each tuple in a relation. They play a pivotal role in database design, especially when normalizing a database to eliminate redundancy.<\/p>\n<h3>Steps to Find Candidate Keys:<\/h3>\n<ul>\n<li><strong>Initialize:<\/strong> Start with a set of attributes, S, and check if it&#8217;s a superkey (i.e., it uniquely identifies all other attributes).<\/li>\n<li><strong>Minimality Check:<\/strong> Remove each attribute from S and check if the reduced set is still a superkey. If it is, the removed attribute is not necessary for uniqueness.<\/li>\n<li><strong>Repeat:<\/strong> Iterate through all possible combinations to identify the minimal superkeys.<\/li>\n<li><strong>Irreducibility Check:<\/strong> Ensure that none of the subsets of a candidate key is a superkey. If any subset is a superkey, it violates the minimality condition.<\/li>\n<\/ul>\n<h3>Attribute Closure and Candidate Keys in Harmony<\/h3>\n<p>The process of finding attribute closure is intimately connected to discovering candidate keys. Candidate keys are essentially those sets of attributes for which the closure encompasses all attributes in the relation.<\/p>\n<p><strong>1. Attribute Closure and Candidate Key Relationship:<\/strong><\/p>\n<ul>\n<li>If the closure of a set of attributes is the entire set of all attributes in a relation, then that set is a superkey.<\/li>\n<li>If a superkey is minimal (i.e., removing any attribute from it results in a non-superkey), it is a candidate key.<\/li>\n<\/ul>\n<p><strong>2. Example:<\/strong><br \/>\nLet&#8217;s consider a relation with attributes (A, B, C, D) and the following functional dependencies:<\/p>\n<ul>\n<li>A, B \u2192 C<\/li>\n<li>B \u2192 D<\/li>\n<\/ul>\n<p>To find candidate keys, we begin with individual attributes and check their closures. In this example, the candidate key could be (A, B), as its closure includes all attributes.<\/p>\n<p><strong>Conclusion<\/strong><br \/>\nThe exploration of attribute closure and candidate keys is integral to the process of designing well-structured and normalized databases. By leveraging functional dependencies, designers can identify the complete set of attributes determined by a given set and pinpoint the minimal sets that uniquely identify each tuple. This meticulous process ensures data integrity, minimizes redundancy, and lays the foundation for robust relational database systems. Understanding these concepts is essential for aspiring database designers and administrators seeking to create efficient and scalable databases.<\/p>\n<h2>FAQs related to Finding Attribute Closure and Candidate Keys using Functional Dependencies<\/h2>\n<p>Here are some of the FAQs related to Finding Attribute Closure and Candidate Keys using Functional Dependencies:<\/p>\n<p><strong>1. What is attribute closure in the context of database design?<\/strong><br \/>\nAttribute closure represents the complete set of attributes that can be functionally determined by a given set of attributes. It is crucial for understanding the relationships between attributes in a relational database.<\/p>\n<p><strong>2. Why is attribute closure important in the design of a relational database?<\/strong><br \/>\nAttribute closure is essential for identifying the complete set of attributes determined by a given set, aiding in the normalization process and ensuring data integrity in a relational database.<\/p>\n<p><strong>3. How is the attribute closure computed for a set of attributes?<\/strong><br \/>\nThe attribute closure is computed by iteratively applying functional dependencies to expand the closure until no further expansion is possible. It represents the smallest set of attributes that can determine all other attributes in the database.<\/p>\n<p><strong>4. What is the significance of candidate keys in database design?<\/strong><br \/>\nCandidate keys are minimal sets of attributes that uniquely identify each tuple in a relation. They play a vital role in eliminating redundancy and ensuring data integrity during the normalization process.<\/p>\n<p><strong>5. How are candidate keys related to attribute closure?<\/strong><br \/>\nThe closure of a set of attributes provides insights into potential candidate keys. If the closure of a set covers all attributes in the relation, it is a superkey. A minimal superkey is a candidate key.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the realm of database design, understanding the relationships between attributes is crucial for creating efficient and reliable databases. Functional dependencies serve as the building blocks for these relationships, and two essential concepts that emerge from them are attribute closure and candidate keys. In this article, we will explore the process of finding attribute closure [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[190],"tags":[],"class_list":["post-18757","post","type-post","status-publish","format-standard","hentry","category-dbms"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Finding Attribute Closure and Candidate Keys using Functional Dependencies<\/title>\n<meta name=\"description\" content=\"Functional dependencies express relationships between sets of attributes in a relational database.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Finding Attribute Closure and Candidate Keys using Functional Dependencies\" \/>\n<meta property=\"og:description\" content=\"Functional dependencies express relationships between sets of attributes in a relational database.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-29T05:41:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1706506866611-Finding%20Attribute%20Closure%20and%20Candidate%20Keys%20using%20Functional%20Dependencies.png\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Finding Attribute Closure and Candidate Keys using Functional Dependencies\",\"datePublished\":\"2024-01-29T05:41:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/\"},\"wordCount\":877,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1706506866611-Finding%20Attribute%20Closure%20and%20Candidate%20Keys%20using%20Functional%20Dependencies.png\",\"articleSection\":[\"DBMS\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/\",\"name\":\"Finding Attribute Closure and Candidate Keys using Functional Dependencies\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1706506866611-Finding%20Attribute%20Closure%20and%20Candidate%20Keys%20using%20Functional%20Dependencies.png\",\"datePublished\":\"2024-01-29T05:41:48+00:00\",\"description\":\"Functional dependencies express relationships between sets of attributes in a relational database.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1706506866611-Finding%20Attribute%20Closure%20and%20Candidate%20Keys%20using%20Functional%20Dependencies.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1706506866611-Finding%20Attribute%20Closure%20and%20Candidate%20Keys%20using%20Functional%20Dependencies.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DBMS\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/dbms\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Finding Attribute Closure and Candidate Keys using Functional Dependencies\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Finding Attribute Closure and Candidate Keys using Functional Dependencies","description":"Functional dependencies express relationships between sets of attributes in a relational database.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/","og_locale":"en_US","og_type":"article","og_title":"Finding Attribute Closure and Candidate Keys using Functional Dependencies","og_description":"Functional dependencies express relationships between sets of attributes in a relational database.","og_url":"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2024-01-29T05:41:48+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1706506866611-Finding%20Attribute%20Closure%20and%20Candidate%20Keys%20using%20Functional%20Dependencies.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Finding Attribute Closure and Candidate Keys using Functional Dependencies","datePublished":"2024-01-29T05:41:48+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/"},"wordCount":877,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1706506866611-Finding%20Attribute%20Closure%20and%20Candidate%20Keys%20using%20Functional%20Dependencies.png","articleSection":["DBMS"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/","url":"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/","name":"Finding Attribute Closure and Candidate Keys using Functional Dependencies","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1706506866611-Finding%20Attribute%20Closure%20and%20Candidate%20Keys%20using%20Functional%20Dependencies.png","datePublished":"2024-01-29T05:41:48+00:00","description":"Functional dependencies express relationships between sets of attributes in a relational database.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1706506866611-Finding%20Attribute%20Closure%20and%20Candidate%20Keys%20using%20Functional%20Dependencies.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1706506866611-Finding%20Attribute%20Closure%20and%20Candidate%20Keys%20using%20Functional%20Dependencies.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/finding-attribute-closure-and-candidate-keys-using-functional-dependencies\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"DBMS","item":"https:\/\/prepbytes.com\/blog\/category\/dbms\/"},{"@type":"ListItem","position":3,"name":"Finding Attribute Closure and Candidate Keys using Functional Dependencies"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/18757","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=18757"}],"version-history":[{"count":1,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/18757\/revisions"}],"predecessor-version":[{"id":18758,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/18757\/revisions\/18758"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=18757"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=18757"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=18757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}